Systems and methods for grouping search results from multiple sources

ABSTRACT

Media content platforms are configured to received search queries and present results to those search queries. Media guidance applications may be configured to access content from multiple content platforms or sources. When a user provides a search query to a media guidance application configured to access multiple content sources, the inventions described herein present search results from multiple sources by grouping the results from some of the multiple sources, ranking each of the multiple sources and groups of sources, and not presenting duplicate results from lower ranked sources. In this way, the user is provided with search results that are distinct as opposed to presenting the same result multiple times when it is available from different sources.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/619,165, filed Jun. 9, 2017. The contents of which are herebyincorporated by reference herein in its entirety.

BACKGROUND

Given the plethora of media content sources, each with a large amount ofavailable media content, users often find it difficult to wade through alarge number of search results for a given query. Specifically,universal search features have enabled users to obtain results from manydifferent content sources with a single search, but the sheer number ofresults may be overwhelming Some conventional systems attempt toovercome this by organizing results by the source from which they arereceived when presenting the results to a user. However, if a largenumber of content sources are searched, even organizing by source mayrequire the user to scroll through many different sources to find thedesired source. Furthermore, even upon finding the desired contentsource, the results for the desired content source may be for the samemedia content as those presented from sources above, requiring even morescrolling by the user to see unique results.

SUMMARY

Accordingly, systems and methods are described herein for presentingsearch results from multiple sources by grouping the results from someof the multiple sources, ranking each of the multiple sources and groupsof sources, and not presenting duplicate results from lower rankedsources. For example, results from three different sources may bereceived (e.g., AMAZON®, NETFLIX®, and) VERIZON®. Because they share acommon characteristic of being over-the-top (OTT) streaming services,results from two of the sources may be grouped into an “OTT” group(e.g., results from AMAZON® and NETFLIX®). The results from the OTTgroup may be presented in a row closer to the top of a screen than theresults from the third source (e.g., VERIZON®) in response to a storedranking indicating that the user prefers the OTT group over the thirdsource. It is then determined whether a result that will be displayedfor the OTT group matches a result that will be displayed for the thirdsource (e.g., by comparing metadata of the two results). If the tworesults match, the result is only presented for the higher ranked source(e.g., the OTT group) and another result is presented in the second rowthat does not match any of the displayed results in the first row. Inthis way, the user is provided with search results that are distinct asopposed to presenting the same result multiple times when it isavailable from different sources.

In some aspects, a media guidance application receives a user input. Forexample, the media guidance application may receive a user input via auser input interface (e.g., a remote control or touchscreen interface).The user input may be a string of one or multiple alphanumeric or othercharacters. Alternatively or additionally, the user input may beselecting one of a plurality of selectable options with common searchqueries. For example, the media guidance application may present themost commonly searched keywords as selectable options for the user toselect, saving the user time that he or she may have to input thecharacters.

The media guidance application searches for results from a first source,a second source, and a third source based on the user input. Forexample, the media guidance application may transmit the user input toservers associated with each of the sources. For example, the mediaguidance application may generate a data packet including the user input(e.g., a string of characters) and/or other parameters for the search(e.g., results should be during a certain time period). In someembodiments, the media guidance application may utilize an applicationprogramming interface (API) from one or more of the sources to transmita search query (e.g., based on the user input). The media guidanceapplication may determine the sources to transmit the user input to,based on user preferences (e.g., a stored user preference in a userprofile) for specific sources. For example, the user may store apreference that search queries should be sent to a particular set ofsources (e.g., to AMAZON®, HULU®, and VERIZON®). Alternatively oradditionally, the media guidance application may generate a graphicaluser interface at the time of the user input allowing the user to selectsources. For example, the media guidance application may generate afield where the user can enter a string of characters (e.g., the userinput) and a series of selectable options for sources to search forresults.

The media guidance application receives first search results from thefirst source, second search results from the second source, and thirdsearch results from the third source. For example, the media guidanceapplication may receive a plurality of results that match the user inputfrom each source. The results from each source may be received inseparate data structures (e.g., tables), where each data structurecontains a plurality of fields, each with an identifier of a matchingresult (e.g., the title of a media asset) and additional information inassociated fields (e.g., an actor in a media asset). In someembodiments, the results may be ranked according to popularity.Alternatively or additionally, the results may be ranked according torelevance to the user input. For example, despite “The Big Bang Theory”being the most popular result (e.g., many users click on it), becausethe user input is “Bang,” the result “Bangerz,” an album by Miley Cyrus,may be ranked higher because the first word is matched to the query asopposed to the third word. Alternatively or additionally, the mediaguidance application may reorder the results based on any combination ofthe factors discussed above, as well as based on user preferences. Forexample, if the media guidance application retrieves a user preferencethat the user likes movies with a given actor, results with that actormay be elevated in the ranking.

The media guidance application determines to merge the first searchresults from the first source with the second search results from thesecond source into a merged group of search results. For example, themedia guidance application may determine that the number of searchresults received from the first source and the second source is smalland determine to merge the results into a merged group. Specifically,the media guidance application may determine that there are too fewresults from the first source to fill a portion of a display allocatedto the first source and may add search results from the second source inorder to fill the display (e.g., by merging the results). As anotherexample, the media guidance application may retrieve characteristics ofthe first and second sources (e.g., that both are OTT sources) anddetermine that the results should be merged into a single section of thesearch results presented to a user, as discussed further below. As yetanother example, the media guidance application may retrieve, from auser profile, an indication that the first source and the second sourceshould be merged, as discussed further below.

In some embodiments, the media guidance application may determine tomerge the results based on an explicit user input to merge the results.Specifically, the media guidance application receives a second userinput to merge results from the first source and the second source. Forexample, the media guidance application may generate for display aplurality of sources that can be searched and allow the user to select(e.g., via a user input interface such as a touchscreen) combinations ofsources to merge results from when performing a search. As anotherexample, the media guidance application may receive a selection of tworows of search results, one from the first source and one from thesecond source, after a search was performed. The media guidanceapplication stores, in a data structure, an indication to merge resultsfrom the first source and the second source. For example, the mediaguidance application may store identifiers of the first source and thesecond source in a data structure, as well as a Boolean value set totrue indicating that results from the two sources should be merged. Themedia guidance application, in response to receiving the first searchresults from the first source and the second search results from thesecond source, retrieves the indication. For example, them mediaguidance application may search the data structure for identifiersassociated with each source that was searched and determine whether anyof the sources that results were received from have a stored indicationindicating that the user would like those results merged (e.g.,displayed in a single row). As a specific example, the media guidanceapplication may determine that identifiers of AMAZON® and HULU® arestored in the data structure and may retrieve a Boolean value forwhether results from the two sources are to be merged. The mediaguidance application, in response to retrieving the indication,determines to merge the first search results from the first source withthe second search results from the second source. Continuing with theprevious example, the media guidance application may merge the resultsfrom AMAZON® and HULU® if the retrieved boolean value is set to true.

In some embodiments, the media guidance application may determine tomerge the results from the first source and the second source based oncharacteristics of the sources. Specifically, the media guidanceapplication receives a first characteristic of the first source and asecond characteristic of the second source. For example, the mediaguidance application may transmit a query to a database containingcharacteristics of sources with identifiers of the first source and thesecond source and receive a response containing one or morecharacteristics for each source. Alternatively or additionally, thesearch results from each source may contain a header that includescharacteristics of the respective source. The characteristic may be atype of content that a source searches (e.g., audio only), a deliverymethod (e.g., OTT or broadcast), a location of the source (e.g.,Russia), or any other data describing the source itself. The mediaguidance application determines that the first characteristic matchesthe second characteristic. For example, the media guidance applicationmay compare characters of each characteristic associated with the firstsource with characters of each characteristic associated with the secondsource. The media guidance application may determine whether twocharacteristics match based on every character matching, or a thresholdamount (e.g., percentage) of characters matching (e.g., to account forspelling errors such as “brodcast” instead of “broadcast”). The mediaguidance application, in response to determining that the firstcharacteristic matches the second characteristic, determines to mergethe first search results with the second search results. For example,upon determining that both AMAZON® and HULU® are sources that have thesame characteristic “OTT,” indicating that both are streamingover-the-top sources, the media guidance application may determine tomerge the results from the two sources into an OTT group.

In some embodiments, the media guidance application, in response todetermining to merge the first search results from the first source withthe second source, merges the results into a single data structure.Specifically, the media guidance application may generate a datastructure (e.g., a list, array, or other suitable data structure) of anappropriate length to store both the first search results and the secondsearch results. For example, if there are five results in the firstsearch results and six results in the second search results, the mediaguidance application may generate a data structure with eleven fields tostore identifiers of the results. The media guidance application maythen write identifiers of each result in the first search results andthe second search results to respective fields of the data structure.The media guidance application may then rank the merged group of resultsin the same manner as discussed above (e.g., based on relevance to auser input).

The media guidance application retrieves a ranking of sources indicatinga higher ranking for the merged group of search results than the thirdsource. For example, the media guidance application may retrieve theranking from local storage or a remote server. The ranking of sourcesmay be stored in a table or other suitable data structure, where eachrow contains an identifier of a source and a numeric ranking or scoreassociated with the source in an associated field. The ranking may beset manually by a user (e.g., via a user input interface) or may be adefault ranking based on the historical interactions of other users(e.g., the most commonly searched sources by a population of users areranked highest). The ranking of sources may contain separate entries forgroups of merged sources, or may average the rankings of the individualsources that are grouped to determine a rank for the group. As aspecific example, the media guidance application may determine thatHULU® and AMAZON® should be part of an OTT group of search results. Ifthe media guidance application determines that the ranking for HULU® is5 and the ranking for AMAZON® is 3, then the media guidance applicationmay assign a ranking of 4 to the OTT group. Continuing with thisexample, if the media guidance application retrieves 6 as the rankingfor a third source, then the media guidance application may determinethat the third source has a lower ranking than the OTT group.

The media guidance application generates for display a grid comprising aplurality of rows with search results. For example, the media guidanceapplication may generate results in the merged group (e.g., containingthe first search results and the second search results) above resultsfrom the third source and only display results from the third sourcethat don't match results displayed from the merged group. Specifically,the media guidance application determines, based on the higher rankingfor the merged group of search results than the third source, togenerate for display the merged group of search results in a first row.For example, the media guidance application may determine a particularlocation (e.g., a row) to generate results from the merged group ofsearch results in. In some embodiments, the row may be located at a rowcloser to the top of the screen than a second row where results from thethird source are presented.

The media guidance application determines a first subset of the mergedgroup of search results that fit in the first row and a second subset ofthe third search results that fit in a second row, wherein the firstsubset includes a first result, and wherein the second subset includes asecond result but not a third result. For example, the media guidanceapplication may determine a number of results that fit in the first rowand the second row. The number may be constant (e.g., each row alwayscontains 3 results) or may vary based on the length of identifiers ofthe results (e.g., results with a large number of characters take upmore space and fewer can be displayed at once). In some embodiments, thenumber may be different for the first row and the second row. Forexample, by virtue of being preferred based on the ranking, more resultsmay be displayed for the first row (e.g., the first row may take up moredisplay space and display results in two sub-rows) than the second row.The media guidance application may then select the appropriate number ofresults from the received search results from the sources to display(e.g., the first and second subsets). The first subset may include afirst result that matches a second result in the second subset. Forexample, “The Big Bang Theory” may be present in the first and secondsubsets. In order to present non-duplicate results to the user, themedia guidance application may select a third result of the third searchresults that does not match one of the results in the first subsetinstead of the second result, as described further below.

The media guidance application compares metadata associated with thefirst result with metadata associated with the second result. Forexample, the media guidance application may retrieve metadata associatedwith a result locally from storage or a remote server. The mediaguidance application may, alternatively or additionally, receive themetadata in fields of a table associated with the results received froma source. The metadata may be any data related to the result thatdescribes content associated with the result. For example, if the resultis for a news article, the metadata may include the author of thearticle, type of the article (e.g., opinion), and/or publication name(e.g., Nature). The media guidance application may execute a programscript to iteratively compare characters of metadata (e.g., attributes)of two results to determine whether the two results match. For example,the media guidance application may compare the string of characters“Matt Damon,” associated with the first result, with the string ofcharacters “Matt Dillon,” associated with the second result.

In some embodiments, the media guidance application may retrievemetadata from a database and compare the characters of the retrievedmetadata to determine whether two results match. Specifically, the mediaguidance application compares a first identifier of the first result anda second identifier of the second result with a plurality of identifiersstored in a database. The identifier may be any combination ofcharacters that define the results, such as a title associated with theresult, a URL, and/or a numerical value (e.g., a serial code). Forexample, the media guidance application may access the database storedlocally in storage or at a remote server via a communications network.The database may be organized as a series of multiple linked tables(e.g., a relational database), where a plurality of identifiers in afirst table are each associated with a pointer to another tablecontaining metadata associated with the identifier. For example, themedia guidance application may compare characters of the first andsecond identifier with the stored plurality of identifiers. The mediaguidance application determines that a first stored identifier matchesthe first identifier and a second stored identifier matches the secondidentifier. For example, the media guidance application may determinethat a first stored identifier matches the first identifier and a secondstored identifier matches the second identifier. The media guidanceapplication may then access the appropriate linked tables based onpointers in fields corresponding to the first stored identifier and thesecond stored identifier.

The media guidance application retrieves first metadata from a firstfield associated with the first stored identifier and second metadatafrom a second field associated with the second stored identifier. Forexample, the tables containing metadata associated with each storedidentifier may be structured so that metadata in a first field of eachtable is always a title associated with the result, metadata in a secondfield of each table is always a director, etc., for easier comparison(e.g., metadata for the same attribute can be compared without having tocompare each stored value to every stored value associated with anotheridentifier). Alternatively or additionally, the table may be structuredsuch that each field with metadata is associated with a label, such as“ACTOR” which can be used to compare corresponding metadata associatedwith different identifiers. The media guidance application may retrievemetadata from a first field associated with the first identifier (e.g.,a title) and metadata from a second field associated with the secondidentifier (e.g., also a title). The media guidance application thencompares first characters of the first metadata associated with thefirst result with second characters of the second metadata associatedwith the second result. For example, the media guidance application maycompare each character of a retrieved string of characters associatedwith the first result (identified by the first identifier) withcharacters of a retrieved string of characters associated with thesecond result (identified by the second identifier).

The media guidance application determines, based on the comparing, thatthe first result matches the second result. For example, the mediaguidance application may determine that if each character of a specificattribute associated with the first result matches each character of thecorresponding attribute associated with the second result that the tworesults match. For example, if two results contain metadata referring toactor “Matt Damon,” the media guidance application may determine themetadata matches and thus the two results match. Alternatively oradditionally, the media guidance application may determine whether allthe metadata (e.g., all the attributes) associated with the firstresult, or a threshold percentage (e.g., 50%), match correspondingmetadata of the second result. For example, if the media guidanceapplication determines the title, director, and genre attributes matchbetween two results, the media guidance application may determine thatthe two results match with greater confidence than if only one attributematched.

In some embodiments, certain attributes (e.g., title) may be weightedmore in determining whether two results match because the attributes aremore distinct between results. For example, many results may refer to“Matt Damon,” so false positive matches may occur if only actor metadatais matched, but it is less likely that multiple results refer to “TheBourne Identity,” and, as such, that title is weighted higher thanactor. In some embodiments, if a threshold number of characters matchbetween an attribute of the first result and an attribute of the secondresult, then the media guidance application may determine a match. Forexample, in some instances due to spelling errors or other typographicalmistakes, a single character may be different between metadataassociated with the first result and metadata associated with the secondresult (e.g., “Tom Hanks” and “Tom Hankz”). In this situation, if athreshold (e.g., all except one character) amount of characters match,the media guidance application may determine the metadata associatedwith the first and second results match.

In some embodiments, the media guidance application may determine thenumber of results to select for the first and second subsets based on adisplay template. Specifically, the media guidance application retrievesa display template for the grid. For example, the media guidanceapplication may retrieve, either locally from storage or remotely from aserver via a communications network, the display template. The displaytemplate may be any suitable data structure, such as a class or a table,which contains parameters for displaying results from multiple sourcesin different rows. The media guidance application retrieves, from afirst field of the display template associated with the first row, afirst value for a first number of results that fit in the first row. Forexample, the media guidance application may retrieve an integer (e.g.,“3”) for the number of results in the first row from a field in thedisplay template. Alternatively or additionally, the media guidanceapplication may retrieve a value or values corresponding to the size ofthe display area of the first row and calculate a number of results thatcan fit in the first row. The media guidance application retrieves, froma second field of the display template associated with the second row, asecond value for a second number of results that fit in the second row.Similarly to the value for the number of results that fit in the firstrow, the media guidance application may retrieve an integer (e.g., “3”)for the number of results in the first row from a field in the displaytemplate. In some embodiments, the number of results that fit in thefirst row may be different than the number that fit in the second row.For example, the media guidance application may present a greater numberof results from the sources associated with the merged group of searchresults since it is preferred by the user.

The media guidance application then selects the first number of resultsfrom the merged group of search results as the first subset. Forexample, the media guidance application may retrieve the number ofresults that were determined to fit in the first row from the mergedgroup of search results (e.g., retrieve identifiers of results from atable containing the merged results received from the first and secondsources, as discussed above). The media guidance application maygenerate the first subset by adding identifiers of the number of resultsfrom the merged group of search results to a list or other datastructure. The media guidance application selects the second number ofresults from the third search results as the second subset. For example,the media guidance application may retrieve the number of results thatwere determined to fit in the second row from the third search results(e.g., retrieve identifiers of results from a table containing theresults received from the third source, as discussed above). The mediaguidance application may generate the second subset by addingidentifiers of the number of results from the third search results to alist or other data structure. The media guidance application mayretrieve additional text and/or graphics associated with each identifierof the first and second subsets to populate an instance of the displaytemplate (e.g., such that each result is displayed according toparameters in the display template).

In some embodiments, the media guidance application determines whichresults to select based on a relevance ranking of results from eachsource. Specifically, the media guidance application ranks each resultin the merged group of search results and each result in the thirdsearch results based on a relevance of each result to the user input.For example, the media guidance application may receive search resultsfrom a source that are already ranked in terms of popularity (e.g.,based on the number of times users have clicked particular links) and/orcharacter matching (e.g., how many characters of a search querysubmitted by the user matched characters of a result). In thissituation, the media guidance application may further rank the resultsbased on user preferences (e.g., elevate certain results based on userpreferences for those results) or may simply retrieve the highest rankedresults without further ranking. If the results received from a sourceare unranked and are only ranked based on similarity to the user'squery, the media guidance application may, for each result, determine arelative popularity. For example, the media guidance application maycompare an identifier of each result with popularities stored in a datastructure (either local in storage or at a remote server). The mediaguidance application may then rank the results received from a sourcebased on the retrieved popularity values. For example, the popularityvalues may be Nielsen ratings of television shows.

The media guidance application retrieves a highest ranked result in themerged group of search results as the first result in the first subset.For example, the media guidance application may retrieve the highestranked result of the ranked merged group of search results as the firstresult. The media guidance application may continue retrieving thenumber of results that fit in the first row (e.g., as discussed above)by retrieving a next highest ranked result from the merged group ofsearch results. The media guidance application retrieves a highestranked result in the third search results as the second result in thesecond subset. For example, the media guidance application may retrievethe highest ranked result of the third search results as the secondresult. The media guidance application may continue retrieving thenumber of results that fit in the second row (e.g., as discussed above)by retrieving a next highest ranked result from the third searchresults.

The media guidance application, in response to determining that thefirst result matches the second result, modifies the second subset byreplacing the second result in the second subset with the third result.For example, upon determining that two results that are to be displayedat the same time (e.g., they are in the first and second subsets), themedia guidance application replaces the result of the source that islower ranked with another result. For example, if “The Big Bang Theory”is a result from both a source associated with the merged group and thethird source and in the first and second subsets, the result in thesecond subset may be replaced with another result. As discussed furtherbelow, the result that replaces the second result may be based on aranking of each result in the third search results from the thirdsource.

In some embodiments, the media guidance application modifies the secondsubset by replacing the second result with a next highest ranked result.Specifically, the media guidance application retrieves a next highestranked result not in the second subset as the third result. For example,the media guidance application may retrieve a result from a list ofranked results (e.g., either received from the source of the searchresults or generated by the media guidance application as discussedabove) that is the highest ranked result not part of the second subset.The media guidance application may further determine whether theretrieved next highest ranked result matches a result in the firstsubset (e.g., by comparing metadata as discussed above). For example, ifthe media guidance application determines that the next highest rankedresult matches a result in the first subset, the media guidanceapplication may retrieve another result (e.g., one result lower on aranked list) until a result does not match one of the first subset.

The media guidance application may remove the second result from thesecond subset. For example, the media guidance application may remove anidentifier associated with the second result from a list or other datastructure storing identifiers of the second subset. The media guidanceapplication may then add the third result to the second subset. Forexample, the media guidance application may add an identifier of thenext highest ranked result (that doesn't match any of the results in thefirst subset) to the list or other data structure. The media guidanceapplication may add the identifier to the same field previouslypopulated by the identifier of the second result that was removed, ormay reorder the identifiers (e.g., based on popularity). In someembodiments, the media guidance application uses the order of theidentifiers stored in the list or other data structure as the order theidentifiers are presented to the user in the rows.

The media guidance application generates for display the first subset inthe first row and the modified second subset in the second row. Forexample, the media guidance application may generate identifiers of eachresult in the first subset in the first row. As a specific example, theidentifiers may be text or graphics that identify each result. The mediaguidance application may receive the identifiers from the sources, ormay retrieve them from local storage or a remote server. The mediaguidance application may similarly generate identifiers of each resultin the modified second subset (e.g., where the third result has replacedthe second result) in the second row. In some embodiments, the mediaguidance application generates an indication (e.g., an arrow pointingsideways) that more results are available. In response to receiving auser selection of the arrow, the media guidance application may generatea new subset for either only the source for which the arrow was selected(e.g., more results from AMAZON® are displayed replacing the currentresults) or for all displayed sources (e.g., more results from AMAZON®and HULU® are displayed replacing the current results). Whenever theresults in the subsets that are displayed change (e.g., based on a userinput to view more results), the media guidance application determineswhether any results in rows that are associated with lower rankedsources match results in rows that are associated with higher rankedsources and replaces those results, as described above.

In some embodiments, the media guidance application determines the totalnumber of duplicate results received from the merged group of sourcesand the third source and displays the number to the user. Specifically,the media guidance application compares each result of the merged groupof search results with each result of the third search results. Forexample, the media guidance application may compare metadata associatedwith each result in the merged group of search results with metadata ofeach search result received from the third source. For example, themedia guidance application may execute a program script utilizing afor-loop to iteratively compare each result in the merged group ofsearch results with each result from the third source. The mediaguidance application then determines, based on comparing each result ofthe merged group of search results with each result of the third searchresults, a number of duplicate results between the merged search resultsand the third search results. For example, the media guidanceapplication may initialize a counter and increment the counter each timea match is determined between a result in the merged group of searchresults and a result from the third source until every result in themerged group of search results has been compared to the search resultsfrom the third source. As discussed above, the media guidanceapplication may determine a match if a threshold percentage of metadataassociated with two search results match. The media guidance applicationthen generates for display an indication of the number of duplicateresults in the second row. For example, the media guidance applicationmay generate for display text with the value for the total number ofduplicates (e.g., “30”) in the first row or the second row. Theindication may optionally contain text clarifying which source theduplicates refer to. For example, if AMAZON® and HULU® are the sourcesof the results for the first row and VERIZON® is the source for thesecond row, the media guidance application may generate text, “30duplicate results with Amazon and Hulu” in the second row.

In some embodiments, the media guidance application may display othersources that returned the same result upon receiving a user selection ofthe result. Specifically, the media guidance application receives a userselection of the first result. For example, the media guidanceapplication may, via user input interface such as a remote control ortouchscreen interface, receive a selection of a particular resultdisplayed on the grid. As a specific example, the media guidanceapplication may determine that the result for “The Big Bang Theory” inthe first row (e.g., the most preferred source(s) of the user) has beenselected by the user. The media guidance application may determine othersources where a result for “The Big Bang Theory” was received bycomparing metadata associated with the selected result to results fromother sources, as discussed above. For example, the media guidanceapplication may determine that the second result (from the third source)matches the first result (e.g., from either the first source or thesecond source) and that the first result is selected by the user. Themedia guidance application, in response to receiving the user selection,generates for display an indication that the first result is alsoavailable from the third source. For example, if both the merged groupof search results and the third search results include a result for “TheBig Bang Theory,” upon a user selecting “The Big Bang Theory” result inthe first row containing the first search results, the media guidanceapplication may generate for display an indication that the result wasalso returned by the third source. As a specific example, the mediaguidance application may generate for display text, “This result wasalso returned by Verizon.” In this way, the media guidance applicationmay provide the user with alternate sources where a result is availablewithout having to show the same result in each row.

In some embodiments, the media guidance application receives a requestfrom the user expressing a preference for the third source instead ofthe sources in associated with the merged group and the media guidanceapplication replaces duplicate results between the first and secondsubset from the first subset instead of the second subset. Specifically,the media guidance application may receive a second user input to assignthe higher ranking to the third source instead of the merged group. Forexample, the media guidance application, when generating the grid withthe search results from the first and second results for display, mayinclude selectable options (e.g., arrows) to swap a row with resultsfrom one source with another row with results from another sourceconstituting a user input to re-rank the sources. The media guidanceapplication may receive a user selection of one of the selectableoptions to elevate the second row with results from the third sourceabove the first row with the merged group of search results. Forexample, the user may select (e.g., via a user input interface such as aremote control) an arrow graphic pointing upwards and the media guidanceapplication may determine that the user selection is a request to swapthe first and second rows (e.g., if the first row is directly above thesecond row). The media guidance application may store (e.g., in a userprofile) the updated rankings for use when generating future grids withsearch results from the two sources.

The media guidance application, in response to receiving the second userinput, swaps the rows where the first and second search results aredisplayed and determines whether duplicates from the less preferredsource (e.g., the first and second sources) exist with the morepreferred source (e.g., the third source). Specifically, the mediaguidance application generates a third subset of the third searchresults by replacing the third result in the modified second subset withthe second result. For example, now that the third source is preferredover the sources associated with the merged group of search results,results from the third source are preferred. Thus, the second result(e.g., for “The Big Bang Theory”) may be added back into the secondsubset to create a new third subset of results to display. The mediaguidance application may generate a new list or other data structurewith identifiers of each result that is part of the third subset, ormodify an existing list or other data structure for the second subset.In some embodiments, the second result replaces the third result. Inother embodiments, another result previously in the subset is removedand both the second and third results are in the third subset.

The media guidance application generates a fourth subset of the mergedgroup of search results by replacing the first result in the firstsubset with a fourth result of the merged group of search results,wherein the fourth result is not in the first subset. For example, nowthat the third source is preferred over the sources associated with themerged group of search results, results from the sources associated withthe merged group of search results that match results of the thirdsource need to be replaced with other results. Thus, the first result(e.g., for “The Big Bang Theory”) may be replaced with a fourth resultfrom the merged group of search results that does not match any of theresults in the third subset (e.g., based on comparing metadata asdiscussed above). The media guidance application may generate a new listor other data structure with identifiers of each result that is part ofthe fourth subset, or modify an existing list or other data structurefor the first subset. The media guidance application then generates fordisplay the third subset in the first row instead of the first subsetand the fourth subset in the second row instead of the modified secondsubset. For example, the media guidance application may generateindicators (e.g., text and/or graphics) associated with each result ofthe third subset in the first row and each result of the fourth subsetin second row. In this way, duplicate results are still not presented,but since the third source is now preferred over the sources associatedwith the merged group, duplicate results are replaced from the mergedgroup of search results, not the third search results.

It should be noted the systems and/or methods described above may beapplied to, or used in accordance with, other systems, methods and/orapparatuses described in this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout, and in which:

FIG. 1 shows an illustrative example of a display showing search resultsfrom a plurality of sources in a grid, in accordance with someembodiments of the disclosure;

FIG. 2 shows an illustrative depiction of data structures containingsearch results from different sources, in accordance with someembodiments of the disclosure;

FIG. 3 shows an illustrative example of a display screen for use inaccessing media content in accordance with some embodiments of thedisclosure;

FIG. 4 shows another illustrative example of a display screen usedaccess media content in accordance with some embodiments of thedisclosure;

FIG. 5 is a block diagram of an illustrative user equipment device inaccordance with some embodiments of the disclosure;

FIG. 6 is a block diagram of an illustrative media system in accordancewith some embodiments of the disclosure;

FIG. 7 is a flowchart of illustrative steps for presenting searchresults from a plurality of sources, in accordance with some embodimentsof the disclosure;

FIG. 8 is another flowchart of illustrative steps for presenting searchresults from a plurality of sources, in accordance with some embodimentsof the disclosure;

FIG. 9 is a flowchart of illustrative steps for determining whether tomerge first results from a first source with second results from asecond source, in accordance with some embodiments of the disclosure;

FIG. 10 is a flowchart of illustrative steps for determining a subset ofresults to display, in accordance with some embodiments of thedisclosure; and

FIG. 11 is a flowchart of illustrative steps for determining whether afirst result from a first source and a second result from a secondsource match, in accordance with some embodiments of the disclosure.

DETAILED DESCRIPTION

Systems and methods are described for presenting search results frommultiple sources by grouping the results from some of the multiplesources, ranking each of the multiple sources and groups of sources, andnot presenting duplicate results from lower ranked sources. For example,results from three different sources may be received (e.g., AMAZON®,NETFLIX®, and) VERIZON®. Because they share a common characteristic ofbeing over-the-top (OTT) streaming services, results from two of thesources may be grouped into an “OTT” group (e.g., results from AMAZON®and NETFLIX®). The results from the OTT group may be presented in a rowcloser to the top of a screen than the results from the third source(e.g., VERIZON®) in response to a stored ranking indicating that theuser prefers the OTT group over the third source. It is then determinedwhether a result that will be displayed for the OTT group matches aresult that will be displayed for the third source (e.g., by comparingmetadata of the two results). If the two results match, the result isonly presented for the higher ranked source (e.g., the OTT group) andanother result is presented in the second row that does not match any ofthe displayed results in the first row. In this way, the user isprovided with search results that are distinct as opposed to presentingthe same result multiple times when it is available from differentsources.

FIG. 1 shows an illustrative example of a display showing search resultsfrom a plurality of sources in a grid, in accordance with someembodiments of the disclosure. For example, display 100 may be coupledto user equipment which executes a media guidance application in orderto display search results relating to user query 102. User query 102 maybe received via a user input interface coupled to the same userequipment displaying display 100 or other user equipment. Display 100includes a grid comprising rows for group of sources 104, source 106, aswell as additional sources 108. Each row (e.g., for group of sources 104or source 106) contains a subset of the results from the source(s). Forexample, results 112, 114, and 116 are displayed from group of sources104 (e.g., each result is from a source that is part of group of sources104) and results 118, 120, and 122 are displayed from source 106. Groupof sources 104 and source 106 may include the same result (e.g., result112 is part of the subsets to be displayed from both sources), asdiscussed below. In response, the media guidance application may removethe duplicate result based on a ranking (e.g., result 112 is removedfrom source 106 because source 106 is ranked lower than group of sources104).

Display 100 may include sources and/or groups of sources ordered (e.g.,from top to bottom) based on a ranking. For example, if a ranking storedin a user profile indicates group of sources 104 is ranked higher thansource 106, the media guidance application may generate group of sources104 above source 106 in display 100. Display 100 may include arrows 124and 130 to display additional results associated from group of sources104 and source 106, respectively. Display 100 may include arrows 126 and128 to reorder the sources. For example, upon a selection of one ofarrows 126 or 128, the media guidance application may reorder thesources presented on display 100 (e.g., source 106 may be the first rowand group of sources 104 may be the second row). Display 100 may appearon one or more user devices (e.g., any of the devices listed in FIGS.5-6 below). Moreover, the media guidance application may use one or moreof the processes described in FIGS. 7-11 to generate display 100 or anyof the features described therein.

In some embodiments, a media guidance application receives a user input.For example, the media guidance application may receive a user input viaa user input interface (e.g., a remote control or touchscreeninterface). The user input may be a string of one or multiplealphanumeric or other characters. Alternatively or additionally, theuser input may be selecting one of a plurality of selectable optionswith common search queries. For example, the media guidance applicationmay present the most commonly searched keywords as selectable optionsfor the user to select, saving the user time that he or she may have toinput the characters.

The media guidance application searches for results from a first source,a second source, and a third source based on the user input. Forexample, the media guidance application may transmit the user input(e.g., user query 102) to servers associated with each of the sources(e.g., each of group of sources 104 and source 106). For example, themedia guidance application may generate a data packet including the userinput (e.g., a string of characters) and/or other parameters for thesearch (e.g., results should be during a certain time period). In someembodiments, the media guidance application may utilize an applicationprogramming interface (API) from one or more of the sources (e.g., oneor more of group of sources 104 and source 106) to transmit a searchquery (e.g., based on the user input). The media guidance applicationmay determine the sources (e.g., group of sources 104 and source 106) totransmit the user input to based on user preferences (e.g., a storeduser preference in a user profile) for specific sources. For example,the user may store a preference that search queries should be sent to aparticular set of sources (e.g., group of sources 104 and source 106).Alternatively or additionally, the media guidance application maygenerate a graphical user interface at the time of the user inputallowing the user to select sources (e.g., group of sources 104 andsource 106). For example, the media guidance application may generate afield where the user can enter a string of characters (e.g., user query102) and a series of selectable options for sources to search forresults.

As referred to herein, a “result” should be understood as data that isrelated to or matches an input from a user. For example, the data may bea link to a location of data, such as a URL to a webpage or a link to alocation in storage where a media asset is stored. As another examplethe data may be text or a graphic that matches the user input (e.g., ifthe user input is “orange” an image for the fruit may be a result). Asreferred to herein, “search results” should be understood as one or moreresults received from a source. For example, a source that is queriedfor results based on the user input may return multiple results (e.g.,links to different URLs, pointers to different locations in storage,graphics, etc.).

The media guidance application receives first search results from thefirst source, second search results from the second source, and thirdsearch results from the third source. For example, the media guidanceapplication may receive a plurality of results that match the user input(e.g., user query 102) from each source (e.g., each of group of sources104 and source 106). The results from each source (e.g., group ofsources 104 and source 106) may be received in separate data structures(e.g., tables), where each data structure contains a plurality offields, each with an identifier of a matching result (e.g., the title ofa media asset) and additional information in associated fields (e.g., anactor in a media asset). In some embodiments, the results may be rankedaccording to popularity, as described further below with respect toFIGS. 2 and 10. Alternatively or additionally, the results may be rankedaccording to relevance to the user input, as described further belowwith respect to FIGS. 2 and 10. For example, despite “The Big BangTheory” being the most popular result (e.g., many users click on it),because the user input is “Bang,” the result “Bangerz,” an album byMiley Cyrus, may be ranked higher because the first word is matched tothe query as opposed to the third word. Alternatively or additionally,the media guidance application may reorder the results based on anycombination of the factors discussed above, as well as based on userpreferences. For example, if the media guidance application retrieves auser preference that the user likes movies with a given actor, resultswith that actor may be elevated in the ranking.

The media guidance application determines to merge the first searchresults from the first source with the second search results from thesecond source into a merged group of search results. For example, themedia guidance application may determine that the number of searchresults received from the first source and the second source is smalland determine to merge the results into a merged group (e.g., group ofsources 104). Specifically, the media guidance application may determinethat there are too few results from the first source to fill a portionof a display (e.g., display 100) allocated to the first source and mayadd search results from the second source in order to fill the display(e.g., by merging the results into group of sources 104). As anotherexample, the media guidance application may retrieve characteristics ofthe first and second sources (e.g., that both are OTT sources) anddetermine that the results should be merged into a single section of thesearch results presented to a user, as discussed further below. As yetanother example, the media guidance application may retrieve, from auser profile, an indication that the first source and the second sourceshould be merged, as discussed further below.

In some embodiments, the media guidance application may determine tomerge the results based on an explicit user input to merge the results.Specifically, the media guidance application receives a second userinput to merge results from the first source and the second source. Forexample, the media guidance application may generate for display aplurality of sources that can be searched and allow the user to select(e.g., via a user input interface such as a touchscreen) combinations ofsources to merge results from (e.g., into a single row for group ofsources 104) when performing a search. As another example, the mediaguidance application may receive a selection of two rows of searchresults, one from the first source and one from the second source, aftera search was performed. The media guidance application stores, in a datastructure, an indication to merge results from the first source and thesecond source (e.g., combine results from group of sources 104). Forexample, the media guidance application may store identifiers of thefirst source and the second source in a data structure, as well as aBoolean value set to true indicating that results from the two sourcesshould be merged. The media guidance application, in response toreceiving the first search results from the first source and the secondsearch results from the second source, retrieves the indication. Forexample, them media guidance application may search the data structurefor identifiers associated with each source that was searched anddetermine whether any of the sources that results were received fromhave a stored indication indicating that the user would like thoseresults merged (e.g., displayed in a single row). As a specific example,the media guidance application may determine that identifiers of AMAZON®and HULU® are stored in the data structure and may retrieve a Booleanvalue for whether results from the two sources are to be merged. Themedia guidance application, in response to retrieving the indication,determines to merge the first search results from the first source withthe second search results from the second source. Continuing with theprevious example, the media guidance application may merge the resultsfrom AMAZON® and HULU® if the retrieved boolean value is set to true.

In some embodiments, the media guidance application may determine tomerge the results from the first source and the second source based oncharacteristics of the sources. Specifically, the media guidanceapplication receives a first characteristic of the first source and asecond characteristic of the second source. For example, the mediaguidance application may transmit a query to a database containingcharacteristics of sources with identifiers of the first source and thesecond source (e.g., each of group of sources 104) and receive aresponse containing one or more characteristics for each source.Alternatively or additionally, the search results from each source(e.g., each of group of sources 104) may contain a header that includescharacteristics of the respective source. The characteristic may be atype of content that a source searches (e.g., audio only), a deliverymethod (e.g., OTT or broadcast), a location of the source (e.g.,Russia), or any other data describing the source itself. The mediaguidance application determines that the first characteristic matchesthe second characteristic. For example, the media guidance applicationmay compare characters of each characteristic associated with the firstsource with characters of each characteristic associated with the secondsource. The media guidance application may determine whether twocharacteristics match based on every character matching, or a thresholdamount (e.g., percentage) of characters matching (e.g., to account forspelling errors such as “brodcast” instead of “broadcast”). The mediaguidance application, in response to determining that the firstcharacteristic matches the second characteristic, determines to mergethe first search results with the second search results. For example,upon determining that both AMAZON® and HULU® are sources that have thesame characteristic “OTT,” indicating that both are streamingover-the-top sources, the media guidance application may determine tomerge the results from the two sources (e.g., each of group of sources104) into an OTT group.

In some embodiments, the media guidance application, in response todetermining to merge the first search results from the first source withthe second source, merges the results into a single data structure.Specifically, the media guidance application may generate a datastructure (e.g., a list, array, or other suitable data structure) of anappropriate length to store both the first search results and the secondsearch results (e.g., from each of group of sources 104). For example,if there are five results in the first search results and six results inthe second search results, the media guidance application may generate adata structure with eleven fields to store identifiers of the results(e.g., from each of group of sources 104). The media guidanceapplication may then write identifiers of each result in the firstsearch results and the second search results to respective fields of thedata structure. The media guidance application may then rank the mergedgroup of results in the same manner as discussed above (e.g., based onrelevance to a user input).

The media guidance application retrieves a ranking of sources indicatinga higher ranking for the merged group of search results than the thirdsource. For example, the media guidance application may retrieve theranking from local storage or a remote server. The ranking of sourcesmay be stored in a table or other suitable data structure, where eachrow contains an identifier of a source (e.g., of source 106) and anumeric ranking or score associated with the source (e.g., “5”) in anassociated field. The ranking may be set manually by a user (e.g., via auser input interface) or may be a default ranking based on thehistorical interactions of other users (e.g., the most commonly searchedsources by a population of users are ranked highest). The ranking ofsources may contain separate entries for groups of merged sources (e.g.,group of sources 104), or may average the rankings of the individualsources (e.g., the sources that are part of group of sources 104) thatare grouped to determine a rank for the group. As a specific example,the media guidance application may determine that HULU® and AMAZON®should be part of an OTT group of search results. If the media guidanceapplication determines that the ranking for HULU is 5 and the rankingfor AMAZON® is 3, then the media guidance application may assign aranking of 4 to the OTT group (e.g., group of sources 104). Continuingwith this example, if the media guidance application retrieves 6 as theranking for a third source (e.g., source 106), then the media guidanceapplication may determine that the third source has a lower ranking thanthe OTT group (e.g., group of sources 104).

The media guidance application generates for display a grid comprising aplurality of rows with search results. For example, the media guidanceapplication may generate results in the merged group (e.g., group ofsources 104) above results from the third source (e.g., source 106) andonly display results from the third source that don't match resultsdisplayed from the merged group. Specifically, the media guidanceapplication determines, based on the higher ranking for the merged groupof search results (e.g., group of sources 104) than the third source(e.g., source 106), to generate for display (e.g., display 100) themerged group of search results in a first row. For example, the mediaguidance application may determine a particular location (e.g., a row)to generate results from the merged group of search results (e.g., groupof sources 104) in. In some embodiments, the row may be located at a rowcloser to the top of the screen than a second row where results from thethird source are presented.

The media guidance application determines a first subset of the mergedgroup of search results that fit in the first row and a second subset ofthe third search results that fit in a second row, wherein the firstsubset includes a first result, and wherein the second subset includes asecond result but not a third result. For example, the media guidanceapplication may determine a number of results that fit in the first rowand the second row. The number may be constant (e.g., each row alwayscontains 3 results) or may vary based on the length of identifiers ofthe results (e.g., results with a large number of characters take upmore space and fewer can be displayed at once). In some embodiments, thenumber may be different for the first row and the second row. Forexample, by virtue of being preferred based on the ranking (e.g., groupof sources 104 is ranked higher than source 106), more results may bedisplayed for the first row (e.g., the first row may take up moredisplay space and display results in two sub-rows) than the second row.The media guidance application may then select the appropriate number ofresults from the received search results from the merged group ofsources and the third source to display (e.g., results 112, 114, and 116are selected from the results received from group of sources 104). Thefirst subset may include a first result that matches a second result inthe second subset. For example, “The Big Bang Theory” (e.g., result 112)may be present in the first and second subsets. In order to presentnon-duplicate results to the user, the media guidance application mayselect a third result of the third search results that does not matchone of the results in the first subset (e.g., does not match result 112,114, or 116) instead of the second result, as described further below.

The media guidance application compares metadata associated with thefirst result with metadata associated with the second result. Forexample, the media guidance application may retrieve metadata associatedwith a result (e.g., result 112) locally from storage or a remoteserver. The media guidance application may, alternatively oradditionally, receive the metadata in fields of a table associated withthe results received from a source (e.g., source 106). The metadata maybe any data related to the result that describes content associated withthe result. For example, if the result is for a news article, themetadata may include the author of the article, type of the article(e.g., opinion), and/or publication name (e.g., Nature). The mediaguidance application may execute a program script to iteratively comparecharacters of metadata (e.g., attributes) of two results to determinewhether the two results match (e.g., result 112 from group of sources104 and result 118 from source 106 are compared). For example, the mediaguidance application may compare the string of characters “Matt Damon,”associated with the first result, with the string of characters “MattDillon,” associated with the second result.

The media guidance application determines, based on the comparing, thatthe first result matches the second result. For example, the mediaguidance application may determine that if each character of a specificattribute associated with the first result (e.g., result 112 from groupof sources 104) matches each character of the corresponding attributeassociated with the second result (e.g., a result that matches result112 from source 106) that the two results match. For example, if tworesults contain metadata referring to actor “Matt Damon,” the mediaguidance application may determine the metadata matches and thus the tworesults match. Alternatively or additionally, the media guidanceapplication may determine whether all the metadata (e.g., all theattributes) associated with the first result (e.g., from group ofsources 104), or a threshold percentage (e.g., 50%), match correspondingmetadata of the second result (e.g., from source 106). For example, ifthe media guidance application determines the title, director, and genreattributes match between two results, the media guidance application maydetermine that the two results match with greater confidence than ifonly one attribute matched.

In some embodiments, certain attributes (e.g., title) may be weightedmore in determining whether two results match because the attributes aremore distinct between results. For example, many results may refer to“Matt Damon,” so false positive matches may occur if only actor metadatais matched, but it is less likely that multiple results refer to “TheBourne Identity,” and, as such, that title is weighted higher thanactor. In some embodiments, if a threshold number of characters matchbetween an attribute of the first result (e.g., from group of sources104) and an attribute of the second result (e.g., from source 106), thenthe media guidance application may determine a match. For example, insome instances due to spelling errors or other typographical mistakes, asingle character may be different between metadata associated with thefirst result and metadata associated with the second result (e.g., “TomHanks” and “Tom Hankz”). In this situation, if a threshold (e.g., allexcept one character) amount of characters match, the media guidanceapplication may determine the metadata associated with the first andsecond results match.

In some embodiments, the media guidance application may determine thenumber of results to select for the first and second subsets based on adisplay template. Specifically, the media guidance application retrievesa display template (e.g., to generate display 100) for the grid. Forexample, the media guidance application may retrieve, either locallyfrom storage or remotely from a server via a communications network, thedisplay template. The display template may be any suitable datastructure, such as a class or a table, which contains parameters fordisplaying results from multiple sources in different rows. The mediaguidance application retrieves, from a first field of the displaytemplate associated with the first row, a first value for a first numberof results that fit in the first row. For example, the media guidanceapplication may retrieve an integer (e.g., “3”) for the number ofresults in the first row from a field in the display template.Alternatively or additionally, the media guidance application mayretrieve a value or values corresponding to the size of the display areaof the first row and calculate a number of results that can fit in thefirst row. The media guidance application retrieves, from a second fieldof the display template associated with the second row, a second valuefor a second number of results that fit in the second row. Similarly tothe value for the number of results that fit in the first row, the mediaguidance application may retrieve an integer (e.g., “3”) for the numberof results in the first row from a field in the display template. Insome embodiments, the number of results that fit in the first row may bedifferent than the number that fit in the second row. For example, themedia guidance application may present a greater number of results fromthe merged group of search results (e.g., from group of sources 104)since it is preferred by the user.

The media guidance application then selects the first number of resultsfrom the merged group of search results as the first subset. Forexample, the media guidance application may retrieve the number ofresults that were determined to fit in the first row from the mergedgroup of search results (e.g., if 3 results fit in the first row,results 112, 114, and 116 from group of sources 104 may be retrieved).The media guidance application may generate the first subset by addingidentifiers of the number of results from the merged group of searchresults to a list or other data structure. The media guidanceapplication selects the second number of results from the third searchresults as the second subset. For example, the media guidanceapplication may retrieve the number of results that were determined tofit in the second row from the third search results (e.g., if 3 resultsfit in the second row, a result matching result 112, result 120, andresult 122 from source 106 may be retrieved). The media guidanceapplication may generate the second subset by adding identifiers of thenumber of results from the third search results to a list or other datastructure. The media guidance application may retrieve additional textand/or graphics associated with each identifier of the first and secondsubsets to populate an instance of the display template (e.g., such thateach result is displayed according to parameters in the displaytemplate).

The media guidance application, in response to determining that thefirst result matches the second result, modifies the second subset byreplacing the second result in the second subset with the third result.For example, upon determining that two results that are to be displayedat the same time (e.g., they are in the first and second subsets), themedia guidance application replaces the result of the source (e.g., aresult that matches result 112, but from source 106) that is lowerranked with another result (e.g., with result 118). For example, if “TheBig Bang Theory” is a result from both a source associated with themerged group and the third source and in the first and second subsets,the result in the second subset may be replaced with another result. Asdiscussed further below with respect to FIG. 2, the result that replacesthe second result may be based on a ranking of each result in the thirdsearch results from the third source.

The media guidance application generates for display the first subset inthe first row and the modified second subset in the second row. Forexample, the media guidance application may generate identifiers of eachresult in the first subset (e.g., results 112, 114, and 116) in thefirst row. As a specific example, the identifiers may be text orgraphics that identify each result. The media guidance application mayreceive the identifiers from the sources (e.g., from source 106), or mayretrieve them from local storage or a remote server. The media guidanceapplication may similarly generate identifiers of each result in themodified second subset (e.g., results 118, 120, and 122) in the secondrow. In some embodiments, the media guidance application generates anindication (e.g., arrows 124 and 130) that more results are available.In response to receiving a user selection of the arrow, the mediaguidance application may generate a new subset for either only thesource for which the arrow was selected (e.g., if arrow 124 is selected,more results from only group of sources 104 are displayed) or for alldisplayed sources (e.g., if arrow 124 is selected, more results fromboth group of sources 104 and source 106 are displayed). Whenever theresults in the subsets that are displayed change (e.g., based on a userinput to view more results), the media guidance application determineswhether any results in rows that are associated with lower rankedsources match results in rows that are associated with higher rankedsources and replaces those results, as described above.

In some embodiments, the media guidance application determines the totalnumber of duplicate results received from the merged group of sourcesand the third source and displays the number to the user. Specifically,the media guidance application compares each result of the merged groupof search results with each result of the third search results. Forexample, the media guidance application may compare metadata associatedwith each result in the merged group of search results (e.g., from groupof sources 104) with metadata of each search result received from thethird source (e.g., from source 106). For example, the media guidanceapplication may execute a program script utilizing a for-loop toiteratively compare each result in the merged group of search results(e.g., from group of sources 104) with each result from the third source(e.g., from source 106). The media guidance application then determines,based on comparing each result of the merged group of search resultswith each result of the third search results, a number of duplicateresults between the merged search results and the third search results.For example, the media guidance application may initialize a counter andincrement the counter each time a match is determined between a resultin the merged group of search results (e.g., from group of sources 104)and a result from the third source (e.g., source 106) until every resultin the merged group of search results has been compared to the searchresults from the third source. As discussed above, the media guidanceapplication may determine a match if a threshold percentage of metadataassociated with two search results match. The media guidance applicationthen generates for display an indication of the number of duplicateresults in the second row. For example, the media guidance applicationmay generate for display text with the value for the total number ofduplicates (e.g., “30”) in the first row or the second row. Theindication may optionally contain text clarifying which source theduplicates refer to. For example, if AMAZON® and HULU® are the sourcesof the results for the first row and VERIZON® is the source for thesecond row, the media guidance application may generate text, “30duplicate results with Amazon and Hulu” in the second row.

In some embodiments, the media guidance application may display othersources that returned the same result upon receiving a user selection ofthe result. Specifically, the media guidance application receives a userselection of the first result. For example, the media guidanceapplication may, via user input interface such as a remote control ortouchscreen interface, receive a selection of a particular resultdisplayed on the grid. As a specific example, the media guidanceapplication may determine that the result for “The Big Bang Theory” inthe first row (e.g., from the most preferred source(s) of the user) hasbeen selected by the user. The media guidance application may determineother sources where a result for “The Big Bang Theory” was received bycomparing metadata associated with the selected result to results fromother sources (e.g., source 106), as discussed above. For example, themedia guidance application may determine that the second result (e.g.,from source 106) matches the first result (e.g., from one of group ofsources 104) and that the first result is selected by the user. Themedia guidance application, in response to receiving the user selection,generates for display an indication that the first result is alsoavailable from the third source. For example, if both the merged groupof search results (e.g., from group of sources 104) and the third searchresults (e.g., from source 106) include a result for “The Big BangTheory,” upon a user selecting “The Big Bang Theory” result in the firstrow containing the first search results, the media guidance applicationmay generate for display an indication that the result was also returnedby the third source. As a specific example, the media guidanceapplication may generate for display text, “This result was alsoreturned by Verizon.” In this way, the media guidance application mayprovide the user with alternate sources where a result is availablewithout having to show the same result in each row.

In some embodiments, the media guidance application receives a requestfrom the user expressing a preference for the third source instead ofthe sources in associated with the merged group and the media guidanceapplication replaces duplicate results between the first and secondsubset from the first subset instead of the second subset. Specifically,the media guidance application may receive a second user input (e.g., ofarrow 126 or arrows 128) to assign the higher ranking to the thirdsource instead of the merged group. For example, the media guidanceapplication, when generating the grid with the search results from thefirst and second results for display, may include selectable options(e.g., of arrow 126 or arrows 128) to swap a row with results from asource or a group of sources (e.g., group of sources 104) with anotherrow with results from another source or group sources (e.g., source 106)constituting a user input to re-rank the sources. The media guidanceapplication may receive a user selection of one of the selectableoptions (e.g., arrow 126) to elevate the second row with results fromthe third source (e.g., source 106) above the first row with the mergedgroup of search results (e.g., from group of sources 104). For example,the user may select (e.g., via a user input interface such as a remotecontrol) an arrow graphic (e.g., arrow 126) pointing upwards and themedia guidance application may determine that the user selection is arequest to swap the first and second rows (e.g., if the first row isdirectly above the second row). The media guidance application may store(e.g., in a user profile) the updated rankings for use when generatingfuture grids with search results from the two sources.

The media guidance application, in response to receiving the second userinput, swaps the rows where the first and second search results aredisplayed and determines whether duplicates from the less preferredsource (e.g., now group of sources 104) exist with the more preferredsource (e.g., now source 106). Specifically, the media guidanceapplication generates a third subset of the third search results byreplacing the third result in the modified second subset with the secondresult. For example, now that the third source is preferred over thesources associated with the merged group of search results, results fromthe third source are preferred. Thus, the second result (e.g., thatmatches result 112 from group of sources 104) may be added back into thesecond subset to create a new third subset of results to display. Themedia guidance application may generate a new list or other datastructure with identifiers of each result that is part of the thirdsubset, or modify an existing list or other data structure for thesecond subset. In some embodiments, the second result replaces the thirdresult (e.g., replaces one of results 118, 120, and 122). In otherembodiments, another result previously in the subset is removed and boththe second and third results are in the third subset.

The media guidance application generates a fourth subset of the mergedgroup of search results by replacing the first result in the firstsubset with a fourth result of the merged group of search results,wherein the fourth result is not in the first subset. For example, nowthat the third source (e.g., source 106) is preferred over the sourcesassociated with the merged group of search results (e.g., group ofsources 104), results from the sources associated with the merged groupof search results that match results of the third source need to bereplaced with other results. Thus, the first result (e.g., result 112)may be replaced with a fourth result from the merged group of searchresults that does not match any of the results in the third subset(e.g., based on comparing metadata as discussed above). The mediaguidance application may generate a new list or other data structurewith identifiers of each result that is part of the fourth subset, ormodify an existing list or other data structure for the first subset.The media guidance application then generates for display the thirdsubset in the first row instead of the first subset and the fourthsubset in the second row instead of the modified second subset. Forexample, the media guidance application may generate indicators (e.g.,text and/or graphics) associated with each result of the third subset inthe first row and each result of the fourth subset in second row. Inthis way, duplicate results are still not presented, but since the thirdsource is now preferred over the sources associated with the mergedgroup, duplicate results are replaced from the merged group of searchresults, not the third search results.

FIG. 2 shows an illustrative depiction of data structures containingsearch results from different sources, in accordance with someembodiments of the disclosure. For example, data structure 200 may beorganized such that each entry (e.g., a row in a table) corresponds to adifferent result from the same source or group of sources (e.g., groupof sources 104). Similarly, data structure 250 may be organized suchthat each entry (e.g., a row in a table) corresponds to a differentresult from another source or group of sources (e.g., source 106). Ifeither data structure 200 or 250 contains a group of sources, then thedata structure may be generated based on merging the results from eachsource in the group of sources.

The media guidance application may compare results in data structures200 and 250 to determine which results match between two differentsources or groups of sources. The media guidance application maydetermine which results to display in a grid, as discussed above withrespect to FIG. 1, based on the comparison. For example, subset 202 ofthe results stored in data structure 200 is selected to be displayed.For example, subset 254 of the results stored in data structure 250 isselected to be displayed. For example, because result 204 and result 252match, the media guidance application does not select result 254 as partof subset 254 to be displayed (e.g., because the source or group ofsources associated with data structure 200 are preferred over the sourceor group of sources of the results in data structure 250). The resultsin data structures 200 and 250 may be ranked according to a variety offactors, as discussed further below and with respect to FIG. 10. Datastructures 200 and 250 may be stored in memory (e.g., storage asdescribed in FIG. 5) on one or more user devices (e.g., any of thedevices listed in FIGS. 5-6 below). Moreover, the media guidanceapplication may use one or more of the processes described in FIGS. 7-11below to generate data structures 200 and 250 or any of the featuresdescribed therein.

In some embodiments, the media guidance application may retrievemetadata from a database and compare the characters of the retrievedmetadata to determine whether two results match. Specifically, the mediaguidance application compares a first identifier of the first result anda second identifier of the second result with a plurality of identifiersstored in a database. The identifier may be any combination ofcharacters that define the results, such as a title associated with theresult, a URL, and/or a numerical value (e.g., a serial code). Forexample, the media guidance application may access the database storedlocally in storage or at a remote server via a communications network.The database may be organized as a series of multiple linked tables(e.g., a relational database), where a plurality of identifiers in afirst table are each associated with a pointer to another tablecontaining metadata associated with the identifier. For example, themedia guidance application may compare characters of the first andsecond identifier (e.g., identifiers of results 204 and 252) with thestored plurality of identifiers. The media guidance applicationdetermines that a first stored identifier matches the first identifierand a second stored identifier matches the second identifier. Forexample, the media guidance application may determine that a firststored identifier matches the first identifier (e.g., identifier ofresult 204) and a second stored identifier matches the second identifier(e.g., identifier of result 252). The media guidance application maythen access the appropriate linked tables based on pointers in fieldscorresponding to the first stored identifier and the second storedidentifier.

The media guidance application retrieves first metadata from a firstfield associated with the first stored identifier and second metadatafrom a second field associated with the second stored identifier. Forexample, the tables containing metadata associated with each storedidentifier (e.g., associated with results 204 and 254) may be structuredso that metadata in a first field of each table is always a titleassociated with the result, metadata in a second field of each table isalways a director, etc., for easier comparison (e.g., metadata for thesame attribute can be compared without having to compare each storedvalue to every stored value associated with another identifier).Alternatively or additionally, the table may be structured such thateach field with metadata is associated with a label, such as “ACTOR”which can be used to compare corresponding metadata associated withdifferent identifiers. The media guidance application may retrievemetadata from a first field associated with the first identifier (e.g.,a title) and metadata from a second field associated with the secondidentifier (e.g., also a title). The media guidance application thencompares first characters of the first metadata associated with thefirst result with second characters of the second metadata associatedwith the second result. For example, the media guidance application maycompare each character of a retrieved string of characters associatedwith the first result (identified by the first identifier) withcharacters of a retrieved string of characters associated with thesecond result (identified by the second identifier).

In some embodiments, the media guidance application determines whichresults to select based on a relevance ranking of results from eachsource. Specifically, the media guidance application ranks each resultin the merged group of search results and each result in the thirdsearch results based on a relevance of each result to the user input.For example, the media guidance application may receive search resultsfrom a source or merged group of sources (e.g., data structure 200) thatare already ranked in terms of popularity (e.g., based on the number oftimes users have clicked particular links) and/or character matching(e.g., how many characters of a search query submitted by the usermatched characters of a result). In this situation, the media guidanceapplication may further rank the results based on user preferences(e.g., elevate certain results based on user preferences for thoseresults) or may simply retrieve the highest ranked results (e.g., aresult indexed “1” such as result 204) without further ranking. If theresults received from a source or group of sources are unranked and areonly ranked based on similarity to the user's query, the media guidanceapplication may, for each result, determine a relative popularity. Forexample, the media guidance application may compare an identifier ofeach result (e.g., an identifier of result 204) with popularities storedin a data structure (either local in storage or at a remote server). Themedia guidance application may then rank the results received from asource based on the retrieved popularity values. For example, thepopularity values may be Nielsen ratings of television shows.

The media guidance application retrieves a highest ranked result in themerged group of search results as the first result in the first subset.For example, the media guidance application may retrieve the highestranked result (e.g., result 204 may be indexed in data structure 200 asthe highest ranked result) of the ranked merged group of search results(e.g., containing ranked results merged from multiple sources asdiscussed above) as the first result. The media guidance application maycontinue retrieving the number of results that fit in the first row(e.g., as discussed above) by retrieving a next highest ranked resultfrom the merged group of search results (e.g., from data structure 200).The media guidance application retrieves a highest ranked result in thethird search results as the second result in the second subset. Forexample, the media guidance application may retrieve the highest rankedresult of the third search results (e.g., result 252 may be indexed asthe highest ranked result in data structure 250) as the second result.The media guidance application may continue retrieving the number ofresults that fit in the second row (e.g., as discussed above) byretrieving a next highest ranked result from the third search results.

In some embodiments, the media guidance application modifies the secondsubset by replacing the second result with a next highest ranked result.Specifically, the media guidance application retrieves a next highestranked result not in the second subset as the third result. For example,the media guidance application may retrieve a result from a list ofranked results (e.g., either received from the source of the searchresults or generated by the media guidance application as discussedabove) that is the highest ranked result not part of the second subset.As a specific example, if the top ranked result of the second subset(e.g., result 252) matches a result (e.g., result 204) in the firstsubset and three results need to be displayed from the third source(e.g., three results need to be retrieved from data structure 250), themedia guidance application may select results ranked 2-4 (e.g., subset254) instead of 1-3 to display. The media guidance application mayfurther determine whether the retrieved next highest ranked resultmatches a result in the first subset (e.g., by comparing metadata asdiscussed above and below with respect to FIG. 11). For example, if themedia guidance application determines that the next highest rankedresult matches a result in the first subset, the media guidanceapplication may retrieve another result (e.g., one result lower on aranked list) until a result does not match one of the first subset.

The media guidance application may remove the second result from thesecond subset. For example, the media guidance application may remove anidentifier associated with the second result (e.g., result 252) from alist or other data structure storing identifiers of the second subset.The media guidance application may then add the third result to thesecond subset. For example, the media guidance application may add anidentifier of the next highest ranked result (that does not match any ofthe results in the first subset) to the list or other data structure.The media guidance application may add the identifier to the same fieldpreviously populated by the identifier of the second result that wasremoved, or may reorder the identifiers (e.g., based on popularity). Insome embodiments, the media guidance application uses the order of theidentifiers stored in the list or other data structure as the order theidentifiers are presented to the user in the rows.

The amount of content available to users in any given content deliverysystem can be substantial. Consequently, many users desire a form ofmedia guidance through an interface that allows users to efficientlynavigate content selections and easily identify content that they maydesire. An application that provides such guidance is referred to hereinas an interactive media guidance application or, sometimes, a mediaguidance application or a guidance application.

Interactive media guidance applications may take various forms dependingon the content for which they provide guidance. One typical type ofmedia guidance application is an interactive television program guide.Interactive television program guides (sometimes referred to aselectronic program guides) are well-known guidance applications that,among other things, allow users to navigate among and locate many typesof content or media assets. Interactive media guidance applications maygenerate graphical user interface screens that enable a user to navigateamong, locate and select content. As referred to herein, the terms“media asset” and “content” should be understood to mean anelectronically consumable user asset, such as television programming, aswell as pay-per-view programs, on-demand programs (as in video-on-demand(VOD) systems), Internet content (e.g., streaming content, downloadablecontent, Webcasts, etc.), video clips, audio, content information,pictures, rotating images, documents, playlists, websites, articles,books, electronic books, blogs, chat sessions, social media,applications, games, and/or any other media or multimedia and/orcombination of the same. Guidance applications also allow users tonavigate among and locate content. As referred to herein, the term“multimedia” should be understood to mean content that utilizes at leasttwo different content forms described above, for example, text, audio,images, video, or interactivity content forms. Content may be recorded,played, displayed or accessed by user equipment devices, but can also bepart of a live performance.

The media guidance application and/or any instructions for performingany of the embodiments discussed herein may be encoded on computerreadable media. Computer readable media includes any media capable ofstoring data. The computer readable media may be transitory, including,but not limited to, propagating electrical or electromagnetic signals,or may be non-transitory including, but not limited to, volatile andnon-volatile computer memory or storage devices such as a hard disk,floppy disk, USB drive, DVD, CD, media cards, register memory, processorcaches, Random Access Memory (“RAM”), etc.

With the advent of the Internet, mobile computing, and high-speedwireless networks, users are accessing media on user equipment deviceson which they traditionally did not. As referred to herein, the phrase“user equipment device,” “user equipment,” “user device,” “electronicdevice,” “electronic equipment,” “media equipment device,” or “mediadevice” should be understood to mean any device for accessing thecontent described above, such as a television, a Smart TV, a set-topbox, an integrated receiver decoder (IRD) for handling satellitetelevision, a digital storage device, a digital media receiver (DMR), adigital media adapter (DMA), a streaming media device, a DVD player, aDVD recorder, a connected DVD, a local media server, a BLU-RAY player, aBLU-RAY recorder, a personal computer (PC), a laptop computer, a tabletcomputer, a WebTV box, a personal computer television (PC/TV), a PCmedia server, a PC media center, a hand-held computer, a stationarytelephone, a personal digital assistant (PDA), a mobile telephone, aportable video player, a portable music player, a portable gamingmachine, a smart phone, or any other television equipment, computingequipment, or wireless device, and/or combination of the same. In someembodiments, the user equipment device may have a front facing screenand a rear facing screen, multiple front screens, or multiple angledscreens. In some embodiments, the user equipment device may have a frontfacing camera and/or a rear facing camera. On these user equipmentdevices, users may be able to navigate among and locate the same contentavailable through a television. Consequently, media guidance may beavailable on these devices, as well. The guidance provided may be forcontent available only through a television, for content available onlythrough one or more of other types of user equipment devices, or forcontent available both through a television and one or more of the othertypes of user equipment devices. The media guidance applications may beprovided as on-line applications (i.e., provided on a web-site), or asstand-alone applications or clients on user equipment devices. Variousdevices and platforms that may implement media guidance applications aredescribed in more detail below.

One of the functions of the media guidance application is to providemedia guidance data to users. As referred to herein, the phrase “mediaguidance data” or “guidance data” should be understood to mean any datarelated to content or data used in operating the guidance application.For example, the guidance data may include program information, guidanceapplication settings, user preferences, user profile information, medialistings, media-related information (e.g., broadcast times, broadcastchannels, titles, descriptions, ratings information (e.g., parentalcontrol ratings, critic's ratings, etc.), genre or category information,actor information, logo data for broadcasters' or providers' logos,etc.), media format (e.g., standard definition, high definition, 3D,etc.), on-demand information, blogs, websites, and any other type ofguidance data that is helpful for a user to navigate among and locatedesired content selections.

FIGS. 3-4 show illustrative display screens that may be used to providemedia guidance data. The display screens shown in FIGS. 3-4 may beimplemented on any suitable user equipment device or platform. While thedisplays of FIGS. 3-4 are illustrated as full screen displays, they mayalso be fully or partially overlaid over content being displayed. A usermay indicate a desire to access content information by selecting aselectable option provided in a display screen (e.g., a menu option, alistings option, an icon, a hyperlink, etc.) or pressing a dedicatedbutton (e.g., a GUIDE button) on a remote control or other user inputinterface or device. In response to the user's indication, the mediaguidance application may provide a display screen with media guidancedata organized in one of several ways, such as by time and channel in agrid, by time, by channel, by source, by content type, by category(e.g., movies, sports, news, children, or other categories ofprogramming), or other predefined, user-defined, or other organizationcriteria.

FIG. 3 shows illustrative grid of a program listings display 300arranged by time and channel that also enables access to different typesof content in a single display. Display 300 may include grid 302 with:(1) a column of channel/content type identifiers 304, where eachchannel/content type identifier (which is a cell in the column)identifies a different channel or content type available; and (2) a rowof time identifiers 306, where each time identifier (which is a cell inthe row) identifies a time block of programming. Grid 302 also includescells of program listings, such as program listing 308, where eachlisting provides the title of the program provided on the listing'sassociated channel and time. With a user input device, a user can selectprogram listings by moving highlight region 310. Information relating tothe program listing selected by highlight region 310 may be provided inprogram information region 312. Region 312 may include, for example, theprogram title, the program description, the time the program is provided(if applicable), the channel the program is on (if applicable), theprogram's rating, and other desired information.

In addition to providing access to linear programming (e.g., contentthat is scheduled to be transmitted to a plurality of user equipmentdevices at a predetermined time and is provided according to aschedule), the media guidance application also provides access tonon-linear programming (e.g., content accessible to a user equipmentdevice at any time and is not provided according to a schedule).Non-linear programming may include content from different contentsources including on-demand content (e.g., VOD), Internet content (e.g.,streaming media, downloadable media, etc.), locally stored content(e.g., content stored on any user equipment device described above orother storage device), or other time-independent content. On-demandcontent may include movies or any other content provided by a particularcontent provider (e.g., HBO On Demand providing “The Sopranos” and “CurbYour Enthusiasm”). HBO ON DEMAND is a service mark owned by Time WarnerCompany L.P. et al. and THE SOPRANOS and CURB YOUR ENTHUSIASM aretrademarks owned by the Home Box Office, Inc. Internet content mayinclude web events, such as a chat session or Webcast, or contentavailable on-demand as streaming content or downloadable content throughan Internet web site or other Internet access (e.g. FTP).

Grid 302 may provide media guidance data for non-linear programmingincluding on-demand listing 314, recorded content listing 316, andInternet content listing 318. A display combining media guidance datafor content from different types of content sources is sometimesreferred to as a “mixed-media” display. Various permutations of thetypes of media guidance data that may be displayed that are differentthan display 300 may be based on user selection or guidance applicationdefinition (e.g., a display of only recorded and broadcast listings,only on-demand and broadcast listings, etc.). As illustrated, listings314, 316, and 318 are shown as spanning the entire time block displayedin grid 302 to indicate that selection of these listings may provideaccess to a display dedicated to on-demand listings, recorded listings,or Internet listings, respectively. In some embodiments, listings forthese content types may be included directly in grid 302. Additionalmedia guidance data may be displayed in response to the user selectingone of the navigational icons 320. (Pressing an arrow key on a userinput device may affect the display in a similar manner as selectingnavigational icons 320.)

Display 300 may also include video region 322, and options region 326.Video region 322 may allow the user to view and/or preview programs thatare currently available, will be available, or were available to theuser. The content of video region 322 may correspond to, or beindependent from, one of the listings displayed in grid 302. Griddisplays including a video region are sometimes referred to aspicture-in-guide (PIG) displays. PIG displays and their functionalitiesare described in greater detail in Satterfield et al. U.S. Pat. No.6,564,378, issued May 13, 2003 and Yuen et al. U.S. Pat. No. 6,239,794,issued May 29, 2001, which are hereby incorporated by reference hereinin their entireties. PIG displays may be included in other mediaguidance application display screens of the embodiments describedherein.

Options region 326 may allow the user to access different types ofcontent, media guidance application displays, and/or media guidanceapplication features. Options region 326 may be part of display 300 (andother display screens described herein), or may be invoked by a user byselecting an on-screen option or pressing a dedicated or assignablebutton on a user input device. The selectable options within optionsregion 326 may concern features related to program listings in grid 302or may include options available from a main menu display. Featuresrelated to program listings may include searching for other air times orways of receiving a program, recording a program, enabling seriesrecording of a program, setting program and/or channel as a favorite,purchasing a program, or other features. Options available from a mainmenu display may include search options, VOD options, parental controloptions, Internet options, cloud-based options, device synchronizationoptions, second screen device options, options to access various typesof media guidance data displays, options to subscribe to a premiumservice, options to edit a user's profile, options to access a browseoverlay, or other options.

The media guidance application may be personalized based on a user'spreferences. A personalized media guidance application allows a user tocustomize displays and features to create a personalized “experience”with the media guidance application. This personalized experience may becreated by allowing a user to input these customizations and/or by themedia guidance application monitoring user activity to determine varioususer preferences. Users may access their personalized guidanceapplication by logging in or otherwise identifying themselves to theguidance application. Customization of the media guidance applicationmay be made in accordance with a user profile. The customizations mayinclude varying presentation schemes (e.g., color scheme of displays,font size of text, etc.), aspects of content listings displayed (e.g.,only HDTV or only 3D programming, user-specified broadcast channelsbased on favorite channel selections, re-ordering the display ofchannels, recommended content, etc.), desired recording features (e.g.,recording or series recordings for particular users, recording quality,etc.), parental control settings, customized presentation of Internetcontent (e.g., presentation of social media content, e-mail,electronically delivered articles, etc.) and other desiredcustomizations.

The media guidance application may allow a user to provide user profileinformation or may automatically compile user profile information. Themedia guidance application may, for example, monitor the content theuser accesses and/or other interactions the user may have with theguidance application. Additionally, the media guidance application mayobtain all or part of other user profiles that are related to aparticular user (e.g., from other web sites on the Internet the useraccesses, such as www.Tivo.com, from other media guidance applicationsthe user accesses, from other interactive applications the useraccesses, from another user equipment device of the user, etc.), and/orobtain information about the user from other sources that the mediaguidance application may access. As a result, a user can be providedwith a unified guidance application experience across the user'sdifferent user equipment devices. This type of user experience isdescribed in greater detail below in connection with FIG. 6. Additionalpersonalized media guidance application features are described ingreater detail in Ellis et al., U.S. Patent Application Publication No.2005/0251827, filed Jul. 11, 2005, Boyer et al., U.S. Pat. No.7,165,098, issued Jan. 16, 2007, and Ellis et al., U.S. PatentApplication Publication No. 2002/0174430, filed Feb. 21, 2002, which arehereby incorporated by reference herein in their entireties.

Another display arrangement for providing media guidance is shown inFIG. 4. Video mosaic display 400 includes selectable options 402 forcontent information organized based on content type, genre, and/or otherorganization criteria. In display 400, television listings option 404 isselected, thus providing listings 406, 408, 410, and 412 as broadcastprogram listings. In display 400 the listings may provide graphicalimages including cover art, still images from the content, video clippreviews, live video from the content, or other types of content thatindicate to a user the content being described by the media guidancedata in the listing. Each of the graphical listings may also beaccompanied by text to provide further information about the contentassociated with the listing. For example, listing 408 may include morethan one portion, including media portion 414 and text portion 416.Media portion 414 and/or text portion 416 may be selectable to viewcontent in full-screen or to view information related to the contentdisplayed in media portion 414 (e.g., to view listings for the channelthat the video is displayed on).

The listings in display 400 are of different sizes (i.e., listing 406 islarger than listings 408, 410, and 412), but if desired, all thelistings may be the same size. Listings may be of different sizes orgraphically accentuated to indicate degrees of interest to the user orto emphasize certain content, as desired by the content provider orbased on user preferences. Various systems and methods for graphicallyaccentuating content listings are discussed in, for example, Yates, U.S.Patent Application Publication No. 2010/0153885, filed Nov. 12, 2009,which is hereby incorporated by reference herein in its entirety.

Users may access content and the media guidance application (and itsdisplay screens described above and below) from one or more of theiruser equipment devices. FIG. 5 shows a generalized embodiment ofillustrative user equipment device 500. More specific implementations ofuser equipment devices are discussed below in connection with FIG. 6.User equipment device 500 may receive content and data via input/output(hereinafter “I/O”) path 502. I/O path 502 may provide content (e.g.,broadcast programming, on-demand programming, Internet content, contentavailable over a local area network (LAN) or wide area network (WAN),and/or other content) and data to control circuitry 504, which includesprocessing circuitry 506 and storage 508. Control circuitry 504 may beused to send and receive commands, requests, and other suitable datausing I/O path 502. I/O path 502 may connect control circuitry 504 (andspecifically processing circuitry 506) to one or more communicationspaths (described below). I/O functions may be provided by one or more ofthese communications paths, but are shown as a single path in FIG. 5 toavoid overcomplicating the drawing.

Control circuitry 504 may be based on any suitable processing circuitrysuch as processing circuitry 506. As referred to herein, processingcircuitry should be understood to mean circuitry based on one or moremicroprocessors, microcontrollers, digital signal processors,programmable logic devices, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), etc., and may includea multi-core processor (e.g., dual-core, quad-core, hexa-core, or anysuitable number of cores) or supercomputer. In some embodiments,processing circuitry may be distributed across multiple separateprocessors or processing units, for example, multiple of the same typeof processing units (e.g., two Intel Core i7 processors) or multipledifferent processors (e.g., an Intel Core i5 processor and an Intel Corei7 processor). In some embodiments, control circuitry 504 executesinstructions for a media guidance application stored in memory (i.e.,storage 508). Specifically, control circuitry 504 may be instructed bythe media guidance application to perform the functions discussed aboveand below. For example, the media guidance application may provideinstructions to control circuitry 504 to generate the media guidancedisplays. In some implementations, any action performed by controlcircuitry 504 may be based on instructions received from the mediaguidance application.

In client-server based embodiments, control circuitry 504 may includecommunications circuitry suitable for communicating with a guidanceapplication server or other networks or servers. The instructions forcarrying out the above mentioned functionality may be stored on theguidance application server. Communications circuitry may include acable modem, an integrated services digital network (ISDN) modem, adigital subscriber line (DSL) modem, a telephone modem, Ethernet card,or a wireless modem for communications with other equipment, or anyother suitable communications circuitry. Such communications may involvethe Internet or any other suitable communications networks or paths(which is described in more detail in connection with FIG. 6). Inaddition, communications circuitry may include circuitry that enablespeer-to-peer communication of user equipment devices, or communicationof user equipment devices in locations remote from each other (describedin more detail below).

Memory may be an electronic storage device provided as storage 508 thatis part of control circuitry 504. As referred to herein, the phrase“electronic storage device” or “storage device” should be understood tomean any device for storing electronic data, computer software, orfirmware, such as random-access memory, read-only memory, hard drives,optical drives, digital video disc (DVD) recorders, compact disc (CD)recorders, BLU-RAY disc (BD) recorders, BLU-RAY 3D disc recorders,digital video recorders (DVR, sometimes called a personal videorecorder, or PVR), solid state devices, quantum storage devices, gamingconsoles, gaming media, or any other suitable fixed or removable storagedevices, and/or any combination of the same. Storage 508 may be used tostore various types of content described herein as well as mediaguidance data described above. Nonvolatile memory may also be used(e.g., to launch a boot-up routine and other instructions). Cloud-basedstorage, described in relation to FIG. 6, may be used to supplementstorage 508 or instead of storage 508.

Control circuitry 504 may include video generating circuitry and tuningcircuitry, such as one or more analog tuners, one or more MPEG-2decoders or other digital decoding circuitry, high-definition tuners, orany other suitable tuning or video circuits or combinations of suchcircuits. Encoding circuitry (e.g., for converting over-the-air, analog,or digital signals to MPEG signals for storage) may also be provided.Control circuitry 504 may also include scaler circuitry for upconvertingand downconverting content into the preferred output format of the userequipment 500. Circuitry 504 may also include digital-to-analogconverter circuitry and analog-to-digital converter circuitry forconverting between digital and analog signals. The tuning and encodingcircuitry may be used by the user equipment device to receive and todisplay, to play, or to record content. The tuning and encodingcircuitry may also be used to receive guidance data. The circuitrydescribed herein, including for example, the tuning, video generating,encoding, decoding, encrypting, decrypting, scaler, and analog/digitalcircuitry, may be implemented using software running on one or moregeneral purpose or specialized processors. Multiple tuners may beprovided to handle simultaneous tuning functions (e.g., watch and recordfunctions, picture-in-picture (PIP) functions, multiple-tuner recording,etc.). If storage 508 is provided as a separate device from userequipment 500, the tuning and encoding circuitry (including multipletuners) may be associated with storage 508.

A user may send instructions to control circuitry 504 using user inputinterface 510. User input interface 510 may be any suitable userinterface, such as a remote control, mouse, trackball, keypad, keyboard,touch screen, touchpad, stylus input, joystick, voice recognitioninterface, or other user input interfaces. Display 512 may be providedas a stand-alone device or integrated with other elements of userequipment device 500. For example, display 512 may be a touchscreen ortouch-sensitive display. In such circumstances, user input interface 510may be integrated with or combined with display 512. Display 512 may beone or more of a monitor, a television, a liquid crystal display (LCD)for a mobile device, amorphous silicon display, low temperature polysilicon display, electronic ink display, electrophoretic display, activematrix display, electro-wetting display, electrofluidic display, cathoderay tube display, light-emitting diode display, electroluminescentdisplay, plasma display panel, high-performance addressing display,thin-film transistor display, organic light-emitting diode display,surface-conduction electron-emitter display (SED), laser television,carbon nanotubes, quantum dot display, interferometric modulatordisplay, or any other suitable equipment for displaying visual images.In some embodiments, display 512 may be HDTV-capable. In someembodiments, display 512 may be a 3D display, and the interactive mediaguidance application and any suitable content may be displayed in 3D. Avideo card or graphics card may generate the output to the display 512.The video card may offer various functions such as accelerated renderingof 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or theability to connect multiple monitors. The video card may be anyprocessing circuitry described above in relation to control circuitry504. The video card may be integrated with the control circuitry 504.Speakers 514 may be provided as integrated with other elements of userequipment device 500 or may be stand-alone units. The audio component ofvideos and other content displayed on display 512 may be played throughspeakers 514. In some embodiments, the audio may be distributed to areceiver (not shown), which processes and outputs the audio via speakers514.

The guidance application may be implemented using any suitablearchitecture. For example, it may be a stand-alone applicationwholly-implemented on user equipment device 500. In such an approach,instructions of the application are stored locally (e.g., in storage508), and data for use by the application is downloaded on a periodicbasis (e.g., from an out-of-band feed, from an Internet resource, orusing another suitable approach). Control circuitry 504 may retrieveinstructions of the application from storage 508 and process theinstructions to generate any of the displays discussed herein. Based onthe processed instructions, control circuitry 504 may determine whataction to perform when input is received from input interface 510. Forexample, movement of a cursor on a display up/down may be indicated bythe processed instructions when input interface 510 indicates that anup/down button was selected.

In some embodiments, the media guidance application is a client-serverbased application. Data for use by a thick or thin client implemented onuser equipment device 500 is retrieved on-demand by issuing requests toa server remote to the user equipment device 500. In one example of aclient-server based guidance application, control circuitry 504 runs aweb browser that interprets web pages provided by a remote server. Forexample, the remote server may store the instructions for theapplication in a storage device. The remote server may process thestored instructions using circuitry (e.g., control circuitry 504) andgenerate the displays discussed above and below. The client device mayreceive the displays generated by the remote server and may display thecontent of the displays locally on equipment device 500. This way, theprocessing of the instructions is performed remotely by the server whilethe resulting displays are provided locally on equipment device 500.Equipment device 500 may receive inputs from the user via inputinterface 510 and transmit those inputs to the remote server forprocessing and generating the corresponding displays. For example,equipment device 500 may transmit a communication to the remote serverindicating that an up/down button was selected via input interface 510.The remote server may process instructions in accordance with that inputand generate a display of the application corresponding to the input(e.g., a display that moves a cursor up/down). The generated display isthen transmitted to equipment device 500 for presentation to the user.

In some embodiments, the media guidance application is downloaded andinterpreted or otherwise run by an interpreter or virtual machine (runby control circuitry 504). In some embodiments, the guidance applicationmay be encoded in the ETV Binary Interchange Format (EBIF), received bycontrol circuitry 504 as part of a suitable feed, and interpreted by auser agent running on control circuitry 504. For example, the guidanceapplication may be an EBIF application. In some embodiments, theguidance application may be defined by a series of JAVA-based files thatare received and run by a local virtual machine or other suitablemiddleware executed by control circuitry 504. In some of suchembodiments (e.g., those employing MPEG-2 or other digital mediaencoding schemes), the guidance application may be, for example, encodedand transmitted in an MPEG-2 object carousel with the MPEG audio andvideo packets of a program.

User equipment device 500 of FIG. 5 can be implemented in system 600 ofFIG. 6 as user television equipment 602, user computer equipment 604,wireless user communications device 606, or any other type of userequipment suitable for accessing content, such as a non-portable gamingmachine. For simplicity, these devices may be referred to hereincollectively as user equipment or user equipment devices, and may besubstantially similar to user equipment devices described above. Userequipment devices, on which a media guidance application may beimplemented, may function as a standalone device or may be part of anetwork of devices. Various network configurations of devices may beimplemented and are discussed in more detail below.

A user equipment device utilizing at least some of the system featuresdescribed above in connection with FIG. 5 may not be classified solelyas user television equipment 602, user computer equipment 604, or awireless user communications device 606. For example, user televisionequipment 602 may, like some user computer equipment 604, beInternet-enabled allowing for access to Internet content, while usercomputer equipment 604 may, like some television equipment 602, includea tuner allowing for access to television programming. The mediaguidance application may have the same layout on various different typesof user equipment or may be tailored to the display capabilities of theuser equipment. For example, on user computer equipment 604, theguidance application may be provided as a web site accessed by a webbrowser. In another example, the guidance application may be scaled downfor wireless user communications devices 606.

In system 600, there is typically more than one of each type of userequipment device but only one of each is shown in FIG. 6 to avoidovercomplicating the drawing. In addition, each user may utilize morethan one type of user equipment device and also more than one of eachtype of user equipment device.

In some embodiments, a user equipment device (e.g., user televisionequipment 602, user computer equipment 604, wireless user communicationsdevice 606) may be referred to as a “second screen device.” For example,a second screen device may supplement content presented on a first userequipment device. The content presented on the second screen device maybe any suitable content that supplements the content presented on thefirst device. In some embodiments, the second screen device provides aninterface for adjusting settings and display preferences of the firstdevice. In some embodiments, the second screen device is configured forinteracting with other second screen devices or for interacting with asocial network. The second screen device can be located in the same roomas the first device, a different room from the first device but in thesame house or building, or in a different building from the firstdevice.

The user may also set various settings to maintain consistent mediaguidance application settings across in-home devices and remote devices.Settings include those described herein, as well as channel and programfavorites, programming preferences that the guidance applicationutilizes to make programming recommendations, display preferences, andother desirable guidance settings. For example, if a user sets a channelas a favorite on, for example, the web site www.Tivo.com on theirpersonal computer at their office, the same channel would appear as afavorite on the user's in-home devices (e.g., user television equipmentand user computer equipment) as well as the user's mobile devices, ifdesired. Therefore, changes made on one user equipment device can changethe guidance experience on another user equipment device, regardless ofwhether they are the same or a different type of user equipment device.In addition, the changes made may be based on settings input by a user,as well as user activity monitored by the guidance application.

The user equipment devices may be coupled to communications network 614.Namely, user television equipment 602, user computer equipment 604, andwireless user communications device 606 are coupled to communicationsnetwork 614 via communications paths 608, 610, and 612, respectively.Communications network 614 may be one or more networks including theInternet, a mobile phone network, mobile voice or data network (e.g., a4G or LTE network), cable network, public switched telephone network, orother types of communications network or combinations of communicationsnetworks. Paths 608, 610, and 612 may separately or together include oneor more communications paths, such as, a satellite path, a fiber-opticpath, a cable path, a path that supports Internet communications (e.g.,IPTV), free-space connections (e.g., for broadcast or other wirelesssignals), or any other suitable wired or wireless communications path orcombination of such paths. Path 612 is drawn with dotted lines toindicate that in the exemplary embodiment shown in FIG. 6 it is awireless path and paths 608 and 610 are drawn as solid lines to indicatethey are wired paths (although these paths may be wireless paths, ifdesired). Communications with the user equipment devices may be providedby one or more of these communications paths, but are shown as a singlepath in FIG. 6 to avoid overcomplicating the drawing.

Although communications paths are not drawn between user equipmentdevices, these devices may communicate directly with each other viacommunication paths, such as those described above in connection withpaths 608, 610, and 612, as well as other short-range point-to-pointcommunication paths, such as USB cables, IEEE 1394 cables, wirelesspaths (e.g., Bluetooth, infrared, IEEE 802-11x, etc.), or othershort-range communication via wired or wireless paths. BLUETOOTH is acertification mark owned by Bluetooth SIG, INC. The user equipmentdevices may also communicate with each other directly through anindirect path via communications network 614.

System 600 includes content source 616 and media guidance data source618 coupled to communications network 614 via communication paths 620and 622, respectively. Paths 620 and 622 may include any of thecommunication paths described above in connection with paths 608, 610,and 612. Communications with the content source 616 and media guidancedata source 618 may be exchanged over one or more communications paths,but are shown as a single path in FIG. 6 to avoid overcomplicating thedrawing. In addition, there may be more than one of each of contentsource 616 and media guidance data source 618, but only one of each isshown in FIG. 6 to avoid overcomplicating the drawing. (The differenttypes of each of these sources are discussed below.) If desired, contentsource 616 and media guidance data source 618 may be integrated as onesource device. Although communications between sources 616 and 618 withuser equipment devices 602, 604, and 606 are shown as throughcommunications network 614, in some embodiments, sources 616 and 618 maycommunicate directly with user equipment devices 602, 604, and 606 viacommunication paths (not shown) such as those described above inconnection with paths 608, 610, and 612.

Content source 616 may include one or more types of content distributionequipment including a television distribution facility, cable systemheadend, satellite distribution facility, programming sources (e.g.,television broadcasters, such as NBC, ABC, HBO, etc.), intermediatedistribution facilities and/or servers, Internet providers, on-demandmedia servers, and other content providers. NBC is a trademark owned bythe National Broadcasting Company, Inc., ABC is a trademark owned by theAmerican Broadcasting Company, Inc., and HBO is a trademark owned by theHome Box Office, Inc. Content source 616 may be the originator ofcontent (e.g., a television broadcaster, a Webcast provider, etc.) ormay not be the originator of content (e.g., an on-demand contentprovider, an Internet provider of content of broadcast programs fordownloading, etc.). Content source 616 may include cable sources,satellite providers, on-demand providers, Internet providers,over-the-top content providers, or other providers of content. Contentsource 616 may also include a remote media server used to storedifferent types of content (including video content selected by a user),in a location remote from any of the user equipment devices. Systems andmethods for remote storage of content, and providing remotely storedcontent to user equipment are discussed in greater detail in connectionwith Ellis et al., U.S. Pat. No. 7,761,892, issued Jul. 20, 2010, whichis hereby incorporated by reference herein in its entirety.

Media guidance data source 618 may provide media guidance data, such asthe media guidance data described above. Media guidance data may beprovided to the user equipment devices using any suitable approach. Insome embodiments, the guidance application may be a stand-aloneinteractive television program guide that receives program guide datavia a data feed (e.g., a continuous feed or trickle feed). Programschedule data and other guidance data may be provided to the userequipment on a television channel sideband, using an in-band digitalsignal, using an out-of-band digital signal, or by any other suitabledata transmission technique. Program schedule data and other mediaguidance data may be provided to user equipment on multiple analog ordigital television channels.

In some embodiments, guidance data from media guidance data source 618may be provided to users' equipment using a client-server approach. Forexample, a user equipment device may pull media guidance data from aserver, or a server may push media guidance data to a user equipmentdevice. In some embodiments, a guidance application client residing onthe user's equipment may initiate sessions with source 618 to obtainguidance data when needed, e.g., when the guidance data is out of dateor when the user equipment device receives a request from the user toreceive data. Media guidance may be provided to the user equipment withany suitable frequency (e.g., continuously, daily, a user-specifiedperiod of time, a system-specified period of time, in response to arequest from user equipment, etc.). Media guidance data source 618 mayprovide user equipment devices 602, 604, and 606 the media guidanceapplication itself or software updates for the media guidanceapplication.

In some embodiments, the media guidance data may include viewer data.For example, the viewer data may include current and/or historical useractivity information (e.g., what content the user typically watches,what times of day the user watches content, whether the user interactswith a social network, at what times the user interacts with a socialnetwork to post information, what types of content the user typicallywatches (e.g., pay TV or free TV), mood, brain activity information,etc.). The media guidance data may also include subscription data. Forexample, the subscription data may identify to which sources or servicesa given user subscribes and/or to which sources or services the givenuser has previously subscribed but later terminated access (e.g.,whether the user subscribes to premium channels, whether the user hasadded a premium level of services, whether the user has increasedInternet speed). In some embodiments, the viewer data and/or thesubscription data may identify patterns of a given user for a period ofmore than one year. The media guidance data may include a model (e.g., asurvivor model) used for generating a score that indicates a likelihooda given user will terminate access to a service/source. For example, themedia guidance application may process the viewer data with thesubscription data using the model to generate a value or score thatindicates a likelihood of whether the given user will terminate accessto a particular service or source. In particular, a higher score mayindicate a higher level of confidence that the user will terminateaccess to a particular service or source. Based on the score, the mediaguidance application may generate promotions that entice the user tokeep the particular service or source indicated by the score as one towhich the user will likely terminate access.

Media guidance applications may be, for example, stand-aloneapplications implemented on user equipment devices. For example, themedia guidance application may be implemented as software or a set ofexecutable instructions which may be stored in storage 508, and executedby control circuitry 504 of a user equipment device 500. In someembodiments, media guidance applications may be client-serverapplications where only a client application resides on the userequipment device, and server application resides on a remote server. Forexample, media guidance applications may be implemented partially as aclient application on control circuitry 504 of user equipment device 500and partially on a remote server as a server application (e.g., mediaguidance data source 618) running on control circuitry of the remoteserver. When executed by control circuitry of the remote server (such asmedia guidance data source 618), the media guidance application mayinstruct the control circuitry to generate the guidance applicationdisplays and transmit the generated displays to the user equipmentdevices. The server application may instruct the control circuitry ofthe media guidance data source 618 to transmit data for storage on theuser equipment. The client application may instruct control circuitry ofthe receiving user equipment to generate the guidance applicationdisplays.

Content and/or media guidance data delivered to user equipment devices602, 604, and 606 may be over-the-top (OTT) content. OTT contentdelivery allows Internet-enabled user devices, including any userequipment device described above, to receive content that is transferredover the Internet, including any content described above, in addition tocontent received over cable or satellite connections. OTT content isdelivered via an Internet connection provided by an Internet serviceprovider (ISP), but a third party distributes the content. The ISP maynot be responsible for the viewing abilities, copyrights, orredistribution of the content, and may only transfer IP packets providedby the OTT content provider. Examples of OTT content providers includeYOUTUBE, NETFLIX, and HULU, which provide audio and video via IPpackets. Youtube is a trademark owned by Google Inc., Netflix is atrademark owned by Netflix Inc., and Hulu is a trademark owned by Hulu,LLC. OTT content providers may additionally or alternatively providemedia guidance data described above. In addition to content and/or mediaguidance data, providers of OTT content can distribute media guidanceapplications (e.g., web-based applications or cloud-based applications),or the content can be displayed by media guidance applications stored onthe user equipment device.

Media guidance system 600 is intended to illustrate a number ofapproaches, or network configurations, by which user equipment devicesand sources of content and guidance data may communicate with each otherfor the purpose of accessing content and providing media guidance. Theembodiments described herein may be applied in any one or a subset ofthese approaches, or in a system employing other approaches fordelivering content and providing media guidance. The following fourapproaches provide specific illustrations of the generalized example ofFIG. 6.

In one approach, user equipment devices may communicate with each otherwithin a home network. User equipment devices can communicate with eachother directly via short-range point-to-point communication schemesdescribed above, via indirect paths through a hub or other similardevice provided on a home network, or via communications network 614.Each of the multiple individuals in a single home may operate differentuser equipment devices on the home network. As a result, it may bedesirable for various media guidance information or settings to becommunicated between the different user equipment devices. For example,it may be desirable for users to maintain consistent media guidanceapplication settings on different user equipment devices within a homenetwork, as described in greater detail in Ellis et al., U.S. PatentPublication No. 2005/0251827, filed Jul. 11, 2005. Different types ofuser equipment devices in a home network may also communicate with eachother to transmit content. For example, a user may transmit content fromuser computer equipment to a portable video player or portable musicplayer.

In a second approach, users may have multiple types of user equipment bywhich they access content and obtain media guidance. For example, someusers may have home networks that are accessed by in-home and mobiledevices. Users may control in-home devices via a media guidanceapplication implemented on a remote device. For example, users mayaccess an online media guidance application on a website via a personalcomputer at their office, or a mobile device such as a PDA orweb-enabled mobile telephone. The user may set various settings (e.g.,recordings, reminders, or other settings) on the online guidanceapplication to control the user's in-home equipment. The online guidemay control the user's equipment directly, or by communicating with amedia guidance application on the user's in-home equipment. Varioussystems and methods for user equipment devices communicating, where theuser equipment devices are in locations remote from each other, isdiscussed in, for example, Ellis et al., U.S. Pat. No. 8,046,801, issuedOct. 25, 2011, which is hereby incorporated by reference herein in itsentirety.

In a third approach, users of user equipment devices inside and outsidea home can use their media guidance application to communicate directlywith content source 616 to access content. Specifically, within a home,users of user television equipment 602 and user computer equipment 604may access the media guidance application to navigate among and locatedesirable content. Users may also access the media guidance applicationoutside of the home using wireless user communications devices 606 tonavigate among and locate desirable content.

In a fourth approach, user equipment devices may operate in a cloudcomputing environment to access cloud services. In a cloud computingenvironment, various types of computing services for content sharing,storage or distribution (e.g., video sharing sites or social networkingsites) are provided by a collection of network-accessible computing andstorage resources, referred to as “the cloud.” For example, the cloudcan include a collection of server computing devices, which may belocated centrally or at distributed locations, that provide cloud-basedservices to various types of users and devices connected via a networksuch as the Internet via communications network 614. These cloudresources may include one or more content sources 616 and one or moremedia guidance data sources 618. In addition or in the alternative, theremote computing sites may include other user equipment devices, such asuser television equipment 602, user computer equipment 604, and wirelessuser communications device 606. For example, the other user equipmentdevices may provide access to a stored copy of a video or a streamedvideo. In such embodiments, user equipment devices may operate in apeer-to-peer manner without communicating with a central server.

The cloud provides access to services, such as content storage, contentsharing, or social networking services, among other examples, as well asaccess to any content described above, for user equipment devices.Services can be provided in the cloud through cloud computing serviceproviders, or through other providers of online services. For example,the cloud-based services can include a content storage service, acontent sharing site, a social networking site, or other services viawhich user-sourced content is distributed for viewing by others onconnected devices. These cloud-based services may allow a user equipmentdevice to store content to the cloud and to receive content from thecloud rather than storing content locally and accessing locally-storedcontent.

A user may use various content capture devices, such as camcorders,digital cameras with video mode, audio recorders, mobile phones, andhandheld computing devices, to record content. The user can uploadcontent to a content storage service on the cloud either directly, forexample, from user computer equipment 604 or wireless usercommunications device 606 having content capture feature. Alternatively,the user can first transfer the content to a user equipment device, suchas user computer equipment 604. The user equipment device storing thecontent uploads the content to the cloud using a data transmissionservice on communications network 614. In some embodiments, the userequipment device itself is a cloud resource, and other user equipmentdevices can access the content directly from the user equipment deviceon which the user stored the content.

Cloud resources may be accessed by a user equipment device using, forexample, a web browser, a media guidance application, a desktopapplication, a mobile application, and/or any combination of accessapplications of the same. The user equipment device may be a cloudclient that relies on cloud computing for application delivery, or theuser equipment device may have some functionality without access tocloud resources. For example, some applications running on the userequipment device may be cloud applications, i.e., applications deliveredas a service over the Internet, while other applications may be storedand run on the user equipment device. In some embodiments, a user devicemay receive content from multiple cloud resources simultaneously. Forexample, a user device can stream audio from one cloud resource whiledownloading content from a second cloud resource. Or a user device candownload content from multiple cloud resources for more efficientdownloading. In some embodiments, user equipment devices can use cloudresources for processing operations such as the processing operationsperformed by processing circuitry described in relation to FIG. 5.

As referred herein, the term “in response to” refers to initiated as aresult of. For example, a first action being performed in response to asecond action may include interstitial steps between the first actionand the second action. As referred herein, the term “directly inresponse to” refers to caused by. For example, a first action beingperformed directly in response to a second action may not includeinterstitial steps between the first action and the second action.

FIG. 7 is a flowchart of illustrative steps for presenting searchresults from a plurality of sources, in accordance with some embodimentsof the disclosure. For example, a media guidance applicationimplementing process 700 may be executed by control circuitry 504 (FIG.5). It should be noted that process 700 or any step thereof could beperformed on, or provided by, any of the devices shown in FIGS. 5-6.

Process 700 begins at 702, where the media guidance application searches(e.g., via control circuitry 504 (FIG. 5)) for results from a firstsource, a second source, and a third source based on a user input. Forexample, the media guidance application may receive (e.g., via controlcircuitry 504 (FIG. 5)) a user input via a user input interface (e.g.,user input interface 510 (FIG. 5)) of a string of one or multiplealphanumeric or other characters. The media guidance application maytransmit (e.g., via control circuitry 504 (FIG. 5)) the user input toservers associated with each of the sources (e.g., to content source 616via communications network 614 (FIG. 6)). For example, the mediaguidance application may generate a data packet including the user input(e.g., a string of characters) and/or other parameters for the search(e.g., results should be during a certain time period).

Process 700 continues to 704, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) to merge resultsfrom the first source with results from the second source into a mergedgroup. For example, the media guidance application may determine (e.g.,via control circuitry 504 (FIG. 5)) that the number of search resultsreceived from the first source and the second source is small anddetermine to merge the results into a merged group. Specifically, themedia guidance application may determine (e.g., via control circuitry504 (FIG. 5)) that there are too few results from the first source tofill a portion of a display allocated to the first source and may addsearch results from the second source in order to fill the display(e.g., by merging the results). As another example, the media guidanceapplication may retrieve (e.g., via control circuitry 504 (FIG. 5))characteristics (e.g., stored locally in storage 508 (FIG. 5) orremotely at media guidance data source 618 accessible via communicationsnetwork 614 (FIG. 6)) of the first and second sources (e.g., that bothare OTT sources) and determine that the results should be merged into asingle section of the search results presented to a user, as discussedfurther below with respect to FIG. 9. As yet another example, the mediaguidance application may retrieve (e.g., via control circuitry 504 (FIG.5)), from a user profile (e.g., stored locally in storage 508 (FIG. 5)or remotely at media guidance data source 618 accessible viacommunications network 614 (FIG. 6)), an indication that the firstsource and the second source should be merged, as discussed furtherbelow with respect to FIG. 9.

Process 700 continues to 706, where the media guidance applicationreceives (e.g., via control circuitry 504 (FIG. 5)) at least a firstsearch result from one of the first source and the second source and asecond search result and a third search result from the third source.For example, the media guidance application may receive (e.g., viacontrol circuitry 504 (FIG. 5)) one or more results that match the userinput from one of the first source and second source (e.g., from contentsource 616 (FIG. 6)), as well as two or more results from the thirdcontent source. The result(s) from the sources may be received (e.g.,via control circuitry 504 (FIG. 5)) by the media guidance application ina table, where the table contains a plurality of rows, each with anidentifier of a matching result (e.g., the title of a media asset) andadditional information in associated fields (e.g., an actor in a mediaasset).

Process 700 continues to 708, where the media guidance applicationretrieves (e.g., via control circuitry 504 (FIG. 5)) a ranking ofsources indicating a higher ranking for the merged group than the thirdsource. For example, the media guidance application may retrieve (e.g.,via control circuitry 504 (FIG. 5)) the ranking from local storage(e.g., storage 508 (FIG. 5)) or a remote server (e.g., media guidancedata source 618 accessible via communications network 614 (FIG. 6)). Theranking of sources may be stored in a table or other suitable datastructure, where each row contains an identifier of a source and anumeric ranking or score associated with the source in an associatedfield. The ranking may be set manually by a user (e.g., via user inputinterface 510 (FIG. 5)) or may be a default ranking based on thehistorical interactions of other users (e.g., the most commonly searchedsources by a population of users are ranked highest). The ranking ofsources may contain separate entries for groups of merged sources, ormay average the rankings of the individual sources that are grouped todetermine a rank for the group.

Process 700 continues to 710, where the media guidance applicationgenerates (e.g., via control circuitry 504 (FIG. 5)) for display (e.g.,on display 512 (FIG. 5)), based on the higher ranking, the first searchresult associated with the merged group in a first row. For example, themedia guidance application may determine (e.g., via control circuitry504 (FIG. 5)) a particular location (e.g., a row) to generate the firstsearch result associated with the merged group of search results andgenerate the first search result for display in the particular location.In some embodiments, the row may be located at a row closer to the topof the screen (e.g., display 512 (FIG. 5)) than a second row whereresults from the third source are presented.

Process 700 continues to 712, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) that the firstsearch result matches the second search result and the first searchresult does not match the third search result. For example, the mediaguidance application may determine (e.g., via control circuitry 504(FIG. 5)) that if each character of a specific attribute associated withthe first result matches each character of the corresponding attributeassociated with the second result that the two results match. Forexample, if two results contain metadata referring to actor “MattDamon,” the media guidance application may determine (e.g., via controlcircuitry 504 (FIG. 5)) the metadata matches and thus the two resultsmatch.

Process 700 continues to 714, where the media guidance applicationgenerates (e.g., via control circuitry 604 (FIG. 6)) for display (e.g.,on display 512 (FIG. 5)) the third search result in a second row of thegrid, wherein the second search result is not displayed in the secondrow. For example, upon determining that two results that are to bedisplayed at the same time match (e.g., they are in the first and secondsubsets), the media guidance application replaces (e.g., via controlcircuitry 504 (FIG. 5)) the result of the source or group of sourcesthat is ranked lower with another result. For example, if “The Big BangTheory” is a result from both the merged group of sources and a thirdsource (e.g., source 616 (FIG. 6)) and in the first and second subsets,the second result in the second subset may be replaced with anotherresult (e.g., the third result). The media guidance application may thengenerate (e.g., via control circuitry 504 (FIG. 5)) for display (e.g.,on display 512 (FIG. 5)) the third result instead of the second resultin the second row (e.g., with results from the third source).

FIG. 8 is another flowchart of illustrative steps for presenting searchresults from a plurality of sources, in accordance with some embodimentsof the disclosure. For example, a media guidance applicationimplementing process 800 may be executed by control circuitry 504 (FIG.5). It should be noted that process 800 or any step thereof could beperformed on, or provided by, any of the devices shown in FIGS. 5-6.

Process 800 begins at 802, where the media guidance application receives(e.g., via control circuitry 504 (FIG. 5)) a user input. For example,the media guidance application may receive (e.g., via control circuitry504 (FIG. 5)) a user input via a user input interface (e.g., user inputinterface 510 (FIG. 5)). The user input may be a string of one ormultiple alphanumeric or other characters. Alternatively oradditionally, the user input may be selecting one of a plurality ofselectable options with common search queries. For example, the mediaguidance application may present (e.g., via control circuitry 504 (FIG.5)) the most commonly searched keywords as selectable options for theuser to select, saving the user time that he or she may have to inputthe characters.

Process 800 continues to 804, where the media guidance applicationsearches (e.g., via control circuitry 504 (FIG. 5)) for results from afirst source, a second source, and a third source based on the userinput. For example, the media guidance application may transmit (e.g.,via control circuitry 504 (FIG. 5)) the user input to servers associatedwith each of the sources (e.g., to content source 616 via communicationsnetwork 614 (FIG. 6)). For example, the media guidance application maygenerate a data packet including the user input (e.g., a string ofcharacters) and/or other parameters for the search (e.g., results shouldbe during a certain time period). In some embodiments, the mediaguidance application may utilize an API from one or more of the sourcesto transmit (e.g., via control circuitry 504 (FIG. 5)) a search query(e.g., based on the user input). The media guidance application maydetermine (e.g., via control circuitry 504 (FIG. 5)) the sources totransmit the user input to, based on user preferences (e.g., storedlocally in storage 508 (FIG. 5) or remotely at media guidance datasource 618 accessible via communications network 614 (FIG. 6)) forspecific sources. For example, the user may store a preference thatsearch queries should be sent to a particular set of sources (e.g., toAMAZON®, HULU®, and VERIZON®). Alternatively or additionally, the mediaguidance application may generate (e.g., via control circuitry 504 (FIG.5)) a graphical user interface at the time of the user input allowingthe user to select sources. For example, the media guidance applicationmay generate (e.g., via control circuitry 504 (FIG. 5)) a field wherethe user can enter (e.g., via user input interface 510 (FIG. 5)) astring of characters (e.g., the user input) and a series of selectableoptions for sources to search for results.

Process 800 continues to 806, where the media guidance applicationreceives (e.g., via control circuitry 504 (FIG. 5)) first search resultsfrom the first source, second search results from the second source, andthird search results from the third source. For example, the mediaguidance application may receive (e.g., via control circuitry 504 (FIG.5)) a plurality of results that match the user input from each source(e.g., from content source 616 (FIG. 6)). The results from each sourcemay be received (e.g., via control circuitry 504 (FIG. 5)) by the mediaguidance application in separate tables, where each table contains aplurality of rows, each with an identifier of a matching result (e.g.,the title of a media asset) and additional information in associatedfields (e.g., an actor in a media asset). In some embodiments, theresults may be ranked according to popularity. Alternatively oradditionally, the results may be ranked according to relevance to theuser input. For example, despite “The Big Bang Theory” being the mostpopular result (e.g., many users click on it), because the user input is“Bang,” the result “Bangerz,” an album by Miley Cyrus, may be rankedhigher because the first word is matched to the query. Alternatively oradditionally, the media guidance application may reorder (e.g., viacontrol circuitry 504 (FIG. 5)) the results based on any combination ofthe factors discussed above, as well as based on user preferences. Forexample, if the media guidance application retrieves (e.g., via controlcircuitry 504 (FIG. 5)) a user preference (e.g., stored locally instorage 508 (FIG. 5) or remotely at media guidance data source 618accessible via communications network 614 (FIG. 6)) that the user likesmovies with a given actor, then results with that actor may be elevatedin the ranking.

Process 800 continues to 808, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) to merge the firstsearch results from the first source with the second search results fromthe second source into a merged group of search results. For example,the media guidance application may determine (e.g., via controlcircuitry 504 (FIG. 5)) that the number of search results received fromthe first source and the second source is small and determine to mergethe results into a merged group. Specifically, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))that there are too few results from the first source to fill a portionof a display allocated to the first source and may add search resultsfrom the second source in order to fill the display (e.g., by mergingthe results). As another example, the media guidance application mayretrieve (e.g., via control circuitry 504 (FIG. 5)) characteristics(e.g., stored locally in storage 508 (FIG. 5) or remotely at mediaguidance data source 618 accessible via communications network 614 (FIG.6)) of the first and second sources (e.g., that both are OTT sources)and determine that the results should be merged into a single section ofthe search results presented to a user, as discussed further below withrespect to FIG. 9. As yet another example, the media guidanceapplication may retrieve (e.g., via control circuitry 504 (FIG. 5)),from a user profile (e.g., stored locally in storage 508 (FIG. 5) orremotely at media guidance data source 618 accessible via communicationsnetwork 614 (FIG. 6)), an indication that the first source and thesecond source should be merged, as discussed further below with respectto FIG. 9.

Process 800 continues to 810, where the media guidance applicationretrieves (e.g., via control circuitry 504 (FIG. 5)) a ranking ofsources indicating a higher ranking for the merged group of searchresults than the third source. For example, the media guidanceapplication may retrieve (e.g., via control circuitry 504 (FIG. 5)) theranking from local storage (e.g., storage 508 (FIG. 5)) or a remoteserver (e.g., media guidance data source 618 accessible viacommunications network 614 (FIG. 6)). The ranking of sources may bestored in a table or other suitable data structure, where each rowcontains an identifier of a source and a numeric ranking or scoreassociated with the source in an associated field. The ranking may beset manually by a user (e.g., via user input interface 510 (FIG. 5)) ormay be a default ranking based on the historical interactions of otherusers (e.g., the most commonly searched sources by a population of usersare ranked highest). The ranking of sources may contain separate entriesfor groups of merged sources, or may average the rankings of theindividual sources that are grouped to determine a rank for the group.

Process 800 continues to 812, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)), based on thehigher ranking for the merged group of search results than the thirdsource, to generate for display the merged group of search results in afirst row. For example, the media guidance application may determine(e.g., via control circuitry 504 (FIG. 5)) a particular location (e.g.,a row) to generate results from the merged group of search results in.In some embodiments, the row may be located at a row closer to the topof the screen (e.g., display 512 (FIG. 5)) than a second row whereresults from the third source are presented.

Process 800 continues to 814, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) a first subset ofthe merged group of search results that fit in the first row and asecond subset of the third search results that fit in a second row,wherein the first subset includes a first result, and wherein the secondsubset includes a second result but not a third result. For example, themedia guidance application may determine (e.g., via control circuitry504 (FIG. 5)) a number of results that fit in the first row and thesecond row. The number may be constant (e.g., each row always contains 3results) or may vary based on the length of identifiers of the results(e.g., results with a large number of characters take up more space andfewer can be displayed at once). In some embodiments, the number may bedifferent for the first row and the second row. For example, by virtueof being preferred based on the ranking, more results may be displayedfor the first row (e.g., the first row may take up more display spaceand display results in two sub-rows) than the second row. The mediaguidance application may then select (e.g., via control circuitry 504(FIG. 5)) the appropriate number of results from the received searchresults from the sources to display (e.g., the first and secondsubsets), as described further below with respect to FIG. 10. The firstsubset may include a first result that matches a second result in thesecond subset. For example, “The Big Bang Theory” may be present in thefirst and second subsets. In order to present non-duplicate results tothe user, the media guidance application may select (e.g., via controlcircuitry 504 (FIG. 5)) a third result of the third search results thatdoes not match one of the results in the first subset instead of thesecond result.

Process 800 continues to 816, where the media guidance applicationcompares (e.g., via control circuitry 504 (FIG. 5)) metadata associatedwith the first result with metadata associated with the second result.For example, the media guidance application may retrieve (e.g., viacontrol circuitry 504 (FIG. 5)) metadata associated with a resultlocally from storage (e.g., storage 508 (FIG. 5)) or a remote server(e.g., media guidance data source 618 accessible via communicationsnetwork 614 (FIG. 6)). The media guidance application may, alternativelyor additionally, receive (e.g., via control circuitry 504 (FIG. 5)) themetadata in fields of a table associated with the results received froma source (e.g., content source 616 (FIG. 6)). The metadata may be anydata related to the result that describes content associated with theresult. For example, if the result is for a news article, the metadatamay include the author of the article, type of the article (e.g.,opinion), and/or publication name (e.g., Nature). The media guidanceapplication may execute (e.g., via control circuitry 504 (FIG. 5)) aprogram script to iteratively compare characters of metadata (e.g.,attributes) of two results to determine whether the two results match.For example, the media guidance application may compare (e.g., viacontrol circuitry 504 (FIG. 5)) the string of characters “Matt Damon,”associated with the first result, with the string of characters “MattDillon,” associated with the second result.

Process 800 continues to 818, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)), based on thecomparing, that the first result matches the second result. For example,the media guidance application may determine (e.g., via controlcircuitry 504 (FIG. 5)) that if each character of a specific attributeassociated with the first result matches each character of thecorresponding attribute associated with the second result that the tworesults match. For example, if two results contain metadata referring toactor “Matt Damon,” the media guidance application may determine (e.g.,via control circuitry 504 (FIG. 5)) the metadata matches and thus thetwo results match. Alternatively or additionally, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))whether all the metadata (e.g., all the attributes) associated with thefirst result, or a threshold percentage (e.g., 50%), match correspondingmetadata of the second result, as described further with respect to FIG.11. For example, if the media guidance application determines (e.g., viacontrol circuitry 504 (FIG. 5)) the title, director, and genreattributes match between two results, the media guidance application maydetermine that the two results match with greater confidence than ifonly one attribute matched.

Process 800 continues to 820, where the media guidance application, inresponse to determining that the first result matches the second result,modifies (e.g., via control circuitry 504 (FIG. 5)) the second subset byreplacing the second result in the second subset with the third result.For example, upon determining that two results that are to be displayedat the same time match (e.g., they are in the first and second subsets),the media guidance application replaces (e.g., via control circuitry 504(FIG. 5)) the result that is lower ranked with another result. Forexample, if “The Big Bang Theory” is a result both a source associatedwith the merged group and the third source and in the first and secondsubsets, the result in the second subset may be replaced with anotherresult.

Process 800 continues to 822, where the media guidance applicationgenerates (e.g., via control circuitry 504 (FIG. 5)) for display thefirst subset in the first row and the modified second subset in thesecond row. For example, the media guidance application may generate(e.g., via control circuitry 504 (FIG. 5)) identifiers of each result inthe first subset in the first row. As a specific example, theidentifiers may be text or graphics that identify each result. The mediaguidance application may receive (e.g., via control circuitry 504 (FIG.5)) the identifiers from the sources, or may retrieve them from localstorage (e.g., storage 508 (FIG. 5)) or a remote server (e.g., at mediaguidance data source 618 accessible via communications network 614 (FIG.6)). The media guidance application may similarly generate (e.g., viacontrol circuitry 504 (FIG. 5)) identifiers of each result in themodified second subset (e.g., where the third result has replaced thesecond result) in the second row.

FIG. 9 is a flowchart of illustrative steps for determining whether tomerge first results from a first source with second results from asecond source, in accordance with some embodiments of the disclosure.For example, a media guidance application implementing process 900 maybe executed by control circuitry 504 (FIG. 5). It should be noted thatprocess 900 or any step thereof could be performed on, or provided by,any of the devices shown in FIGS. 5-6. Process 900 starts at 902, wherethe media guidance application begins (e.g., via control circuitry 504(FIG. 5)) a process for determining whether to merge first results froma first source with second results from a second source. For example,the media guidance application may initialize the necessary variablesand execute (e.g., via control circuitry 504 (FIG. 5)) a program scriptcalling a particular method to execute process 900.

Process 900 continues to 904, where the media guidance applicationretrieves (e.g., via control circuitry 504 (FIG. 5)) a first identifierof the first source and a second identifier of the second source. Forexample, the media guidance application may retrieve (e.g., via controlcircuitry 504 (FIG. 5)), from the search results received from a source,an identifier of the source (e.g., a string of alphanumeric characters).Alternatively, the media guidance application may retrieve an identifierof a source from storage (e.g., storage 508 (FIG. 5)) or a remote server(e.g., accessible via communications network 614 (FIG. 6)).

Process 900 continues to 906, where the media guidance applicationcompares (e.g., via control circuitry 504 (FIG. 5)) the first identifierand the second identifier with identifiers of sources stored in asources data structure associated with the user. For example, the mediaguidance application may access (e.g., via control circuitry 504 (FIG.5)) the sources data structure in local storage (e.g., storage 508 (FIG.5)) or at a remote server (e.g., at media guidance data source 618accessible via communications network 614 (FIG. 6)). The sources datastructure may contain a plurality of identifiers of sources andindications of whether, for specific combinations of the sources,results from the sources should be grouped. The media guidanceapplication may compare (e.g., via control circuitry 504 (FIG. 5))characters of each identifier in the sources data structure withcharacters of the first and second identifiers.

Process 900 continues to 908, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) if there is anentry in the sources data structure with identifiers that match thefirst identifier and the second identifier. For example, the mediaguidance application may determine whether there is a single entry inthe sources data structure with both the first and the secondidentifier. As a specific example, if the media guidance applicationdetermines AMAZON® and HULU® are the identifiers of the first and secondsources and there is an entry containing both AMAZON® and HULU® in thesources data structure, the media guidance application may determinethat there is a match. If, at 908, the media guidance applicationdetermines that there is an entry in the sources data structure withidentifiers that match the first identifier and the second identifier,process 900 continues to 910, where the media guidance application mayretrieve (e.g., via control circuitry 504 (FIG. 5)) a value associatedwith the entry. For example, the media guidance application may execute(e.g., via control circuitry 504 (FIG. 5)) a program script utilizing adatabase query language such as SQL to access and retrieve the valuefrom a field associated with the entry.

Process 900 proceeds from 910 to 912, where the media guidanceapplication determines (e.g., via control circuitry 504 (FIG. 5))whether the value indicates the first results should be merged with thesecond results. For example, the media guidance application may retrieve(e.g., via control circuitry 504 (FIG. 5)) a boolean set to “true”indicating that the results should be merged. In some embodiments, themedia guidance application may retrieve (e.g., via control circuitry 504(FIG. 5)) a value indicating that the results should be merged only ifthe number of results for one of the sources is below a thresholdnumber.

If, at 912, the media guidance application determines that the valuedoes indicate that the first results should be merged with the secondresults, process 900 continues to 920, where the media guidanceapplication determines (e.g., via control circuitry 504 (FIG. 5)) tomerge the first results and the second results. For example, the mediaguidance application may, in response to determining that the resultsfrom the two sources should be merged, execute (e.g., via controlcircuitry 504 (FIG. 5)) an instruction to merge the first results andthe second results into a single list or other data structure. The mediaguidance application may then use (e.g., via control circuitry 504 (FIG.5)) the merged results to populate a row of a grid that is generated fordisplay with search results, as discussed above with respect to FIGS.1-2 and 7-8.

If, at 908, the media guidance application determines that there is notan entry in the sources data structure with identifiers that match thefirst identifier and the second identifier or if, at 912, the mediaguidance application determines that the value does not indicate thatthe first results should be merged with the second results, then process900 continues to 914, where the media guidance application retrieves(e.g., via control circuitry 504 (FIG. 5)) first characteristics of thefirst source and second characteristics of the second source. Forexample, the media guidance application may transmit (e.g., via controlcircuitry 504 (FIG. 5)) a query to a database (e.g., stored in storage508 (FIG. 5) or at media guidance data source 618 accessible viacommunications network 614 (FIG. 6)) containing characteristics ofsources (e.g., content source 616 (FIG. 6)) with identifiers of thefirst source and the second source and receive a response containing oneor more characteristics for each source. Alternatively or additionally,the search results from each source may contain a header that includescharacteristics of the respective source. The characteristic may be atype of content that a source searches (e.g., audio only), a deliverymethod (e.g., OTT or broadcast), a location of the source (e.g.,Russia), or any other data describing the source itself.

Process 900 continues to 916, where the media guidance applicationcompares (e.g., via control circuitry 504 (FIG. 5)) each characteristicin the first characteristics with each characteristic in the secondcharacteristics. For example, the media guidance application may compare(e.g., via control circuitry 504 (FIG. 5)) characters of eachcharacteristic associated with the first source with characters of eachcharacteristic associated with the second source.

Process 900 continues to 918, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) whether anycharacteristics in the first characteristics match a characteristic inthe second characteristics. For example, the media guidance applicationmay determine (e.g., via control circuitry 504 (FIG. 5)) whether twocharacteristics match based on every character matching, or a thresholdamount (e.g., percentage) of characters matching (e.g., to account forspelling errors such as “brodcast” instead of “broadcast”).

If, at 918, the media guidance application determines that acharacteristic of the first characteristics matches a characteristic inthe second characteristics, process 900 continues to 920, where themedia guidance application determines (e.g., via control circuitry 504(FIG. 5)) to merge the first results and the second results. Forexample, the media guidance application may, in response to determiningthat the results from the two sources should be merged, execute (e.g.,via control circuitry 504 (FIG. 5)) an instruction to merge the firstresults and the second results into a single list or other datastructure. The media guidance application may then use (e.g., viacontrol circuitry 504 (FIG. 5)) the merged results to populate a row ofa grid that is generated for display with search results, as discussedabove with respect to FIGS. 1-2 and 7-8.

If, at 918, the media guidance application determines that acharacteristic of the first characteristics does not match acharacteristic in the second characteristics, process 900 continues to922, where the media guidance application determines (e.g., via controlcircuitry 504 (FIG. 5)) not to merge the first results and the secondresults. For example, if the two sources are unrelated, the mediaguidance application may determine (e.g., via control circuitry 504(FIG. 5)) that the results should be presented separately as opposed tomerged. As a specific example, the media guidance application maydetermine (e.g., via control circuitry 504 (FIG. 5)) that results from abroadcast source and a OTT source should be presented separately.

FIG. 10 is a flowchart of illustrative steps for determining a subset ofresults to display, in accordance with some embodiments of thedisclosure. For example, a media guidance application implementingprocess 1000 may be executed by control circuitry 504 (FIG. 5). Itshould be noted that process 1000 or any step thereof could be performedon, or provided by, any of the devices shown in FIGS. 5-6. Process 1000starts at 1002, where the media guidance application begins (e.g., viacontrol circuitry 504 (FIG. 5)) a process for determining a subset ofresults to display. For example, the media guidance application mayinitialize the necessary variables and execute (e.g., via controlcircuitry 504 (FIG. 5)) a program script calling a particular method toexecute process 1000.

Process 1000 continues to 1004, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) if the results areranked based on relevance to user input. For example, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))whether data received with search results from the source (e.g., viacontent source 616 (FIG. 6)) indicates that the results are ranked basedon relevance to user input. As a specific example, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))whether a boolean value is set to “true” for ranking by relevancereceived in a data packet associated with the results from the source.

If, at 1004, the media guidance application determines that the resultsare not ranked based on relevance to user input, process 1000 continuesto 1006, where the media guidance application compares (e.g., viacontrol circuitry 504 (FIG. 5)) each result to the user input todetermine a relevance value. For example, the media guidance applicationmay compare (e.g., via control circuitry 504 (FIG. 5)) characters of aresult to the user input to determine an amount and/or percentage thatmatch and assign a relevance value according to the amount and/orpercentage that match. Alternatively or additionally, the media guidanceapplication may weight (e.g., via control circuitry 504 (FIG. 5)) theposition that consecutive characters (e.g., a word) match between theuser input and the result. For example, if the first word of one resultmatches the user input and a second result matches the word as well butit is the third word in a string of words, the first result may beassigned a greater relevance value.

Process 1000 continues to 1008, where the media guidance applicationranks (e.g., via control circuitry 504 (FIG. 5)) the results based onthe relevance value. For example, the media guidance application mayorder (e.g., via control circuitry 504 (FIG. 5)) the results based onthe relevance values (e.g., from highest to lowest relevance) byutilizing a sorting algorithm, such as merge sort or bubble sort. Themedia guidance application may combine (e.g., via control circuitry 504(FIG. 5)) the ranking with other rankings and weight each ranking (e.g.,based on popularity or user preferences, as discussed below) to generatean aggregate ranking, which is then used to select results for thesubset. Process 1000 then continues to 1010.

If, at 1004, the media guidance application determines that the resultsare ranked based on relevance to user input, process 1000 continues to1010, where the media guidance application determines (e.g., via controlcircuitry 504 (FIG. 5)) whether the results are ranked based onpopularity. For example, the media guidance application may determine(e.g., via control circuitry 504 (FIG. 5)) whether data received withsearch results from the source (e.g., via content source 616 (FIG. 6))indicates that the results are ranked based on popularity. As a specificexample, the media guidance application may determine (e.g., via controlcircuitry 504 (FIG. 5)) whether a boolean value is set to “true” forranking by popularity received in a data packet associated with theresults from the source.

If, at 1010, the media guidance application determines that the resultsare not ranked based on popularity, process 1000 continues to 1012,where the media guidance application retrieves (e.g., via controlcircuitry 504 (FIG. 5)) a popularity value for each result. For example,the media guidance application may transmit (e.g., via control circuitry504 (FIG. 5)) a request for a popularity value associated with anidentifier of each result to a database (e.g., to media guidance datasource 618 (FIG. 6)). As a specific example, the media guidanceapplication may retrieve (e.g., via control circuitry 504 (FIG. 5))popularity values from the database. The popularity values may berankings of how many users view or access data associated with theresult (e.g., “The Big Bang Theory” is the number one ranked show,ESPN.com is the 3^(rd) most visited webpage, etc.).

Process 1000 continues to 1014, where the media guidance applicationranks (e.g., via control circuitry 504 (FIG. 5)) the results based onthe retrieved popularity value. For example, the media guidanceapplication may order (e.g., via control circuitry 504 (FIG. 5)) theresults based on the popularity values (e.g., from highest to lowestpopularity) by utilizing a sorting algorithm, such as merge sort orbubble sort. The media guidance application may combine (e.g., viacontrol circuitry 504 (FIG. 5)) the ranking with other rankings andweight each ranking (e.g., based on popularity or user preferences, asdiscussed) to generate an aggregate ranking, which is then used toselect results for the subset. Process 1000 then continues to 1016.

If, at 1010, the media guidance application determines that the resultsare ranked based on popularity, process 1000 continues to 1016, wherethe media guidance application determines (e.g., via control circuitry504 (FIG. 5)) whether the results are ranked based on user preferences.For example, the media guidance application may determine (e.g., viacontrol circuitry 504 (FIG. 5)) whether data received with searchresults from the source (e.g., via content source 616 (FIG. 6))indicates that the results are ranked based on user preferences. As aspecific example, the media guidance application may determine (e.g.,via control circuitry 504 (FIG. 5)) whether a boolean value is set to“true” for ranking by user preferences received in a data packetassociated with the results from the source.

For example, the media guidance application may transmit (e.g., viacontrol circuitry 504 (FIG. 5)) user preferences with the user input tothe source at the time of the search, or may (e.g., due to data privacyconsiderations) sort the results based on user preferences afterreceiving the results.

If, at 1016, the media guidance application determines that the resultsare not ranked based on user preferences, process 1000 continues to1018, where the media guidance application retrieves (e.g., via controlcircuitry 504 (FIG. 5)) user preferences from a user profile. Forexample, the media guidance application may execute (e.g., via controlcircuitry 504 (FIG. 5)) a program script utilizing a database querylanguage such as SQL to access and retrieve data in a particular fieldof the user profile. The media guidance application may retrieve (e.g.,via control circuitry 504 (FIG. 5)) data from specific fields (e.g.,determined to be relevant to search results, such as a favorite showassociated with the user), a random subset of user preferences, or alluser preferences from the user profile.

Process 1000 continues to 1020, where the media guidance applicationcompares (e.g., via control circuitry 504 (FIG. 5)) each retrieved userpreference to each result to determine a preference value. For example,the media guidance application may compare (e.g., via control circuitry504 (FIG. 5)) a retrieved user preference with a rule-set fordetermining whether the user preference relates to a search result. Forexample, the rule-set may include a rule that if a search result isassociated with a particular actor (e.g., Tom Hanks) and the userpreference is related to a movie that Tom Hanks is in (e.g., “ForrestGump”) then a specific value will be assigned as the preference value.The media guidance application may update (e.g., via control circuitry504 (FIG. 5)) the preference value if additional user preferences relateto the same search result.

Process 1000 continues to 1014, where the media guidance applicationranks (e.g., via control circuitry 504 (FIG. 5)) the results based onthe preference value. Process 1000 then continues to 1024. For example,the media guidance application may order (e.g., via control circuitry504 (FIG. 5)) the results based on the preference values (e.g., fromhighest to lowest popularity) by utilizing a sorting algorithm, such asmerge sort or bubble sort. The media guidance application may combine(e.g., via control circuitry 504 (FIG. 5)) the ranking with otherrankings and weight each ranking (e.g., based on popularity or userpreferences, as discussed) to generate an aggregate ranking, which isthen used to select results for the subset.

If, at 1016, the media guidance application determines that the resultsare ranked based on user preferences, process 1000 continues to 1024,where the media guidance application determines (e.g., via controlcircuitry 504 (FIG. 5)) a row where the results from the source will bedisplayed. For example, the media guidance application may determine(e.g., via control circuitry 504 (FIG. 5)) a particular location (e.g.,a row) to generate results from the first source in. In someembodiments, the row may be located at a row closer to the top of thescreen than a second row where results from the second source arepresented.

Process 1000 continues to 1026, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) a number ofresults that fit in the determined row. For example, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5)) anumber of results that fit in the row based on retrieving a value from adisplay template, as discussed above with respect to FIG. 1. The numbermay be constant (e.g., each row always contains 3 results) or may varybased on the length of identifiers of the results (e.g., results with alarge number of characters take up more space and fewer can be displayedat once).

Process 1000 continues to 1028, where the media guidance applicationselects (e.g., via control circuitry 504 (FIG. 5)) the number of resultsfrom the ranked results as the subset of results to display. Forexample, the media guidance application may then select the appropriatenumber of results from the received search results from the source todisplay (e.g., the subset), as described further with respect to FIGS.1-2.

FIG. 11 is a flowchart of illustrative steps for determining whether afirst result from a first source and a second result from a secondsource match, in accordance with some embodiments of the disclosure. Forexample, a media guidance application implementing process 1100 may beexecuted by control circuitry 504 (FIG. 5). It should be noted thatprocess 1100 or any step thereof could be performed on, or provided by,any of the devices shown in FIGS. 5-6. Process 1100 starts at 1102,where the media guidance application begins (e.g., via control circuitry504 (FIG. 5)) a process for determining whether a first result from afirst source and a second result from a second source match. Forexample, the media guidance application may initialize the necessaryvariables and execute (e.g., via control circuitry 504 (FIG. 5)) aprogram script calling a particular method to execute process 1100.

Process 1100 continues to 1104, where the media guidance applicationretrieves (e.g., via control circuitry 504 (FIG. 5)) an attributeassociated with the first result and a corresponding attributeassociated with the second result. For example, the media guidanceapplication may retrieve (e.g., via control circuitry 504 (FIG. 5))tables containing metadata associated with the first and second resultsstored locally (e.g., in storage 508 (FIG. 5)) or remotely at a server(e.g., at media guidance data source 618 accessible via communicationsnetwork 614 (FIG. 6)). For example, the tables containing metadataassociated with each stored identifier may be structured so thatmetadata in a first field of each table is always a title associatedwith the result, metadata in a second field of each table is always adirector, etc., for easier comparison (e.g., metadata for the sameattribute can be compared without having to compare each stored value toevery stored value associated with another identifier). Alternatively oradditionally, the table may be structured such that each field withmetadata is associated with a label, such as “ACTOR,” which can be usedto compare corresponding metadata associated with different identifiers.The media guidance application may retrieve (e.g., via control circuitry504 (FIG. 5)) metadata from a first field associated with the firstresult (e.g., a title) and metadata from a second field associated withthe second result (e.g., also a title).

Process 1100 continues to 1106, where the media guidance applicationcompares (e.g., via control circuitry 504 (FIG. 5)) the attributeassociated with the first result and the corresponding attributeassociated with the second result. For example, the media guidanceapplication may compare (e.g., via control circuitry 504 (FIG. 5)) eachcharacter of a retrieved string of characters associated with the firstresult (e.g., a title) with characters of a retrieved string ofcharacters associated with the second result (e.g., another title). Forexample, the media guidance application may execute (e.g., via controlcircuitry 504 (FIG. 5)) a program script to iteratively comparecharacters of metadata (e.g., attributes) of two results to determinewhether the two results match. For example, the media guidanceapplication may compare (e.g., via control circuitry 504 (FIG. 5)) thestring of characters “Matt Damon,” associated with the first result,with the string of characters “Matt Dillon,” associated with the secondresult.

Process 1100 continues to 1108, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) if the attributesmatch. For example, the media guidance application may determine (e.g.,via control circuitry 504 (FIG. 5)) whether two attributes match if allthe characters match. Alternatively or additionally, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))whether two attributes match if a threshold amount or percentage of allthe characters of two attributes match. For example, in some instancesdue to spelling errors or other typographical mistakes, a singlecharacter may be different between metadata associated with the firstresult and metadata associated with the second result (e.g., “Tom Hanks”and “Tom Hankz”) and the media guidance application may still determine(e.g., via control circuitry 504 (FIG. 5)) a match.

If, at 1108, the media guidance application determines that theattributes do not match, process 1100 continues to 1110, where the mediaguidance application increments (e.g., via control circuitry 504 (FIG.5)) a second value. For example, the media guidance application mayinitialize (e.g., via control circuitry 504 (FIG. 5)) a variable storingan integer and increment the value every time a match is not determinedbetween two corresponding attributes. For example, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))that “Tom Hanks” associated with the first result does not match “ChrisEvans” associated with the second result and thus increments thevariable by one. If, at 1108, the media guidance application determinesthat the attributes do match, process 1100 continues to 1112, where themedia guidance application increments (e.g., via control circuitry 504(FIG. 5)) a first value. For example, the media guidance application mayinitialize (e.g., via control circuitry 504 (FIG. 5)) a variable storingan integer and increment the value every time a match is determinedbetween two corresponding attributes. For example, the media guidanceapplication may determine (e.g., via control circuitry 504 (FIG. 5))that “Tom Hanks” associated with the first result matches “Tom Hankz”associated with the second result and thus increments the variable byone.

Process 1100 continues to 1114, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) if there are anyother attributes to compare. For example, the media guidance applicationmay execute a for-loop to iteratively retrieve every attributeassociated with the first result and compare to a correspondingattribute associated with the second result (e.g., which is alsoretrieved). The media guidance application may determine (e.g., viacontrol circuitry 504 (FIG. 5)) that data in some fields of a tablestoring metadata associated with a result has not been retrieved basedon the for-loop still running. The media guidance application may alsostore (e.g., via control circuitry 504 (FIG. 5)) a list of attributes oridentifiers of attributes that have been retrieved and compare withstored attributes associated with a result to determine if there are anyother attributes that have not yet been retrieved.

If, at 1114, the media guidance application determines that there areother attributes to compare, process 1100 returns to 1104, where themedia guidance application retrieves (e.g., via control circuitry 504(FIG. 5)) an attribute associated with the first result and acorresponding attribute associated with the second result. For example,the media guidance application may determine (e.g., via controlcircuitry 504 (FIG. 5)) that some attributes have not yet been retrievedfrom a data structure or data structures with attributes associated withthe first and second results and the media guidance application maycontinue (e.g., via control circuitry 504 (FIG. 5)) to retrieveattributes until all have been compared.

If, at 1114, the media guidance application determines that there arenot any other attributes to compare, process 1100 continues to 1116,where the media guidance application calculates (e.g., via controlcircuitry 504 (FIG. 5)) a percentage of matching attributes based on thefirst value and the second value. For example, the media guidanceapplication may calculate (e.g., via control circuitry 504 (FIG. 5)) atotal number of attributes (e.g., by adding the first value to thesecond value or by retrieving the total number from a data structurestoring attributes). The media guidance application may then calculate(e.g., via control circuitry 504 (FIG. 5)) the percentage of matchingattributes by dividing the total number by the first value. As aspecific example, if there are 10 matches (e.g., the first value is 10)and 5 non-matches (e.g., the second value is 5), then the media guidanceapplication may calculate (e.g., via control circuitry 504 (FIG. 5)) thetotal number as 15 and the percentage as 10/15, or 67%.

Process 1100 continues to 1118, where the media guidance applicationcompares (e.g., via control circuitry 504 (FIG. 5)) the percentage to athreshold match percentage. For example, the media guidance applicationmay retrieve (e.g., via control circuitry 504 (FIG. 5)) a stored value(e.g., from storage 508 (FIG. 5)) for the threshold match percentage.The media guidance application may then compare (e.g., via controlcircuitry 504 (FIG. 5)) the calculated percentage of attributes thatmatch between two results to the retrieved threshold.

Process 1100 continues to 1120, where the media guidance applicationdetermines (e.g., via control circuitry 504 (FIG. 5)) if the percentageis greater than the threshold match percentage. For example, the mediaguidance application may determine (e.g., via control circuitry 504(FIG. 5)) that if the value for the percentage of attributes is 67% andthe value for the threshold for determining a match is 50% that the tworesults match. The media guidance application may still determine (e.g.,via control circuitry 504 (FIG. 5)) a match if the percentage is withina tolerance factor (e.g., if the percentage of attributes that match isonly 2% below the threshold for determining a match). In someembodiments, the tolerance factor may be based on the number ofattributes that were compared.

If, at 1120, the media guidance application determines that thepercentage is greater than the threshold match percentage, then process1100 continues to 1122, where the media guidance application determines(e.g., via control circuitry 504 (FIG. 5)) that the first result matchesthe second result. For example, the media guidance application maydetermine (e.g., via control circuitry 504 (FIG. 5)) that, since thevalue for the calculated percentage is greater than the threshold value,the two results match. As described above with respect to FIGS. 1-2 and8, the media guidance application may determine (e.g., via controlcircuitry 504 (FIG. 5)) to remove one of the two results from a subsetto be displayed based on what the user's preferences are for the twosources of the two identical results. If, at 1120, the media guidanceapplication determines that the percentage is not greater than thethreshold match percentage, then process 1100 continues to 1124, wherethe media guidance application determines (e.g., via control circuitry504 (FIG. 5)) that the first result does not match the second result.For example, the media guidance application may determine (e.g., viacontrol circuitry 504 (FIG. 5)) that, since the value for the calculatedpercentage is less than the threshold value, the two results do notmatch.

It is contemplated that the steps or descriptions of each of FIGS. 7-11may be used with any other embodiment of this disclosure. In addition,the steps and descriptions described in relation to FIGS. 7-11 may bedone in alternative orders or in parallel to further the purposes ofthis disclosure. For example, each of these steps may be performed inany order or in parallel or substantially simultaneously to reduce lagor increase the speed of the system or method. Furthermore, it should benoted that any of the devices or equipment discussed in relation toFIGS. 5-6 could be used to perform one or more of the steps in FIGS.7-11.

While some portions of this disclosure may make reference to“convention,” any such reference is merely for the purpose of providingcontext to the invention(s) of the instant disclosure, and does not formany admission as to what constitutes the state of the art.

The processes discussed above are intended to be illustrative and notlimiting. One skilled in the art would appreciate that the steps of theprocesses discussed herein may be omitted, modified, combined, and/orrearranged, and any additional steps may be performed without departingfrom the scope of the invention. More generally, the above disclosure ismeant to be exemplary and not limiting. Only the claims that follow aremeant to set bounds as to what the present invention includes.Furthermore, it should be noted that the features and limitationsdescribed in any one embodiment may be applied to any other embodimentherein, and flowcharts or examples relating to one embodiment may becombined with any other embodiment in a suitable manner, done indifferent orders, or done in parallel. In addition, the systems andmethods described herein may be performed in real time. It should alsobe noted that the systems and/or methods described above may be appliedto, or used in accordance with, other systems and/or methods.

What is claimed is:
 1. A method for presenting search results from aplurality of sources, the method comprising: searching for results froma first source, a second source, and a third source based on a userinput; merging results from the first source with results from thesecond source into a merged group based at least on characteristics ofthe first and second sources by receiving at least: a first result fromone of the first source and the second source, the first result beingincluded in the merged group; and a second result and a third resultfrom the third source; retrieving a ranking of sources indicating ahigher ranking for the merged group than a ranking of the third source,wherein the ranking of the merged group is based on a ranking of thefirst source and a ranking of the second source; and generating fordisplay a grid comprising a plurality of rows, each row including one ormore of the search results, by: generating for display, based on thehigher ranking, the first result in a first row; determining that thefirst result matches the second result and the first result does notmatch the third result; and in response to determining that the firstresult matches the second result and the first result does not match thethird result, generating for display the third search result in a secondrow, wherein the second result is not displayed in the second row. 2.The method of claim 1, wherein the user input is a first user input,further comprising: receiving a second user input to assign the higherranking to the third source instead of the merged group and in response:generating a second subset including the second result, but not thethird result; generating a third subset by replacing the third result ina modified second subset with the second result; generating a fourthsubset of the merged group by replacing the first result in a firstsubset of the merged group with a fourth result of the merged group,wherein the fourth result is not in the first subset; and generating fordisplay the third subset in the first row instead of the merged groupand the fourth subset in the second row instead of the modified secondsubset.
 3. The method of claim 2, further comprising: determining thatthe first subset of the merged group fits in a display of the first rowand the second subset fits in a display of the second row comprises:retrieving a display template for the grid; retrieving, from a firstfield of the display template associated with the first row, a firstvalue for a first number of results that fit in the first row;retrieving, from a second field of the display template associated withthe second row, a second value for a second number of results that fitin the second row; selecting the first number of results from the mergedgroup as the first subset; and selecting the second number of results asthe second subset.
 4. The method of claim 2, further comprises:determining that the first subset of the merged group fits in a displayof the first row and the second subset fits in a display of the secondrow, wherein the determining comprises: ranking each result in themerged group based on a relevance of each result to the user input; andretrieving a highest ranked result in the merged group as the firstresult in the first subset.
 5. The method of claim 2, furthercomprising: modifying the second subset by replacing the second resultin the second subset with the third result, wherein the modifyingcomprises: retrieving a next highest ranked result not in the secondsubset as the third result; removing the second result from the secondsubset; and adding the third result to the second subset.
 6. The methodof claim 1, further comprising: comparing the metadata associated withthe first result with the metadata associated with the second result,wherein the comparing comprises: comparing a first identifier of thefirst result and a second identifier of the second result with aplurality of identifiers stored in a database; determining that a firststored identifier matches the first identifier and a second storedidentifier matches the second identifier; retrieving first metadata froma first field associated with the first stored identifier and secondmetadata from a second field associated with the second storedidentifier; and comparing first characters of the first metadataassociated with the first result with second characters of the secondmetadata associated with the second result.
 7. The method of claim 1,wherein the generating for display the grid further comprises: comparingeach result of the merged group with the third result; determining,based on comparing each result of the merged search results with thethird result, a number of duplicate results between the merged searchresults and the third result; and generating for display an indicationof the number of duplicate results in the second row.
 8. The method ofclaim 1, wherein the merging the results from the first source with theresults from the second source into the merged group comprises:retrieving a first characteristic of the first source and a secondcharacteristic of the second source; determining that the firstcharacteristic matches the second characteristic; and in response to thedetermining that the first characteristic matches the secondcharacteristic, merging the results.
 9. The method of claim 1, whereinthe user input is a first user input, and wherein the merging theresults from the first source with the results from the second sourceinto the merged group comprises: receiving a second user input to mergethe results from the first source and the second source; storing, in adata structure, an indication to merge the results from the first sourceand the second source; in response to the receiving the first resultfrom the first source and the second result from the second source,retrieving the indication; and in response to the retrieving theindication, merging the results.
 10. The method of claim 1, furthercomprising: receiving a user selection of the first result; and inresponse to the receiving the user selection, generating for display anindication that the first result is also available from the thirdsource.
 11. A system for presenting search results from a plurality ofsources, the system comprising: at least one processor communicablycoupled with components arranged to process search queries; and controlcircuitry, communicably coupled to the at least one processor andconfigured to transmit instructions to and from the at least oneprocessor, configured to: search for results from a first source, asecond source, and a third source based on a user input; merge resultsfrom the first source with results from the second source into a mergedgroup based at least on characteristics of the first and second sourcesby receive at least: a first result from one of the first source and thesecond source, the first results being included in the merged group; anda second result and a third result from the third source; retrieve aranking of sources indicating a higher ranking for the merged group thana ranking of the third source, wherein the ranking of the merged groupis based on a ranking of the first source and a ranking of the secondsource; and generate for display a grid comprising a plurality of rows,each row including one or more of the search results, by: generating fordisplay, based on the higher ranking, the first result in a first row;determining that the first result matches the second result and thefirst result does not match the third result; and in response todetermining that the first result matches the second result and thefirst result does not match the third result, generating for display thethird result in a second row, wherein the second result is not displayedin the second row.
 12. The system of claim 11, wherein the controlcircuitry, when the user input is a first user input, is configured tofurther: receive a second user input to assign the higher ranking to thethird source instead of the merged group and in response: generate asecond subset including the second result, but not the third result;generate a third subset by replacing the third result in a modifiedsecond subset with the second result; generate a fourth subset of themerged group by replacing the first result in a first subset of themerged group with a fourth result of the merged group, wherein thefourth result is not in the first subset; and generate for display thethird subset in the first row instead of the merged group and the fourthsubset in the second row instead of the modified second subset.
 13. Thesystem of claim 12, wherein the control circuitry is configured, whendetermining that the first subset of the merged group fits in a displayof the first row and the second subset fits in a display of the secondrow, to: retrieve a display template for the grid; retrieve, from afirst field of the display template associated with the first row, afirst value for a first number of results that fit in the first row;retrieve, from a second field of the display template associated withthe second row, a second value for a second number of results that fitin the second row; select the first number of results from the mergedgroup as the first subset; and select the second number of results asthe second subset.
 14. The system of claim 12, wherein the controlcircuitry is configured, when determining that the first subset of themerged group fits in a display of the first row and the second subsetfits in a display of the second row, to: rank each result in the mergedgroup based on a relevance of each result to the user input; andretrieve a highest ranked result in the merged group as the first resultin the first subset.
 15. The system of claim 12, wherein the controlcircuitry is configured, when modifying the second subset by replacingthe second result in the second subset with the third result, to:retrieve a next highest ranked result not in the second subset as thethird result; remove the second result from the second subset; and addthe third result to the second subset.
 16. The system of claim 11,wherein the control circuitry is configured, when comparing the metadataassociated with the first result with the metadata associated with thesecond result, to: compare a first identifier of the first result and asecond identifier of the second result with a plurality of identifiersstored in a database; determine that a first stored identifier matchesthe first identifier and a second stored identifier matches the secondidentifier; retrieve first metadata from a first field associated withthe first stored identifier and second metadata from a second fieldassociated with the second stored identifier; and compare firstcharacters of the first metadata associated with the first result withsecond characters of the second metadata associated with the secondresult.
 17. The system of claim 11, wherein the control circuitry isconfigured, when generating for display the grid, to: compare eachresult of the merged group with the third result; determine, based oncomparing each result of the merged search results with the thirdresult, a number of duplicate results between the merged search resultsand the third result; and generate for display an indication of thenumber of duplicate results in the second row.
 18. The system of claim11, wherein the control circuitry is configured, when merging theresults from the first source with the results from the second sourceinto the merged group, to: retrieve a first characteristic of the firstsource and a second characteristic of the second source; determine thatthe first characteristic matches the second characteristic; and inresponse to the determining that the first characteristic matches thesecond characteristic, merge the results.
 19. The system of claim 11,wherein the user input is a first user input, and wherein the controlcircuitry is configured, when merging the results from the first sourcewith the results from the second source into the merged group, to:receive a second user input to merge the results from the first sourceand the second source; store, in a data structure, an indication tomerge the results from the first source and the second source; inresponse to the receiving the first result from the first source and thesecond result from the second source, retrieve the indication; and inresponse to the retrieving the indication, merge the results.
 20. Thesystem of claim 11, wherein the control circuitry is further configuredto: receive a user selection of the first result; and in response to thereceiving the user selection, generate for display an indication thatthe first result is also available from the third source.